สอบถามค้นหาหลายเงื่อนไขครับตอนนี้ผมขาดแค่ค้นหาข้อมูลจาก 3 ช่อง
Code (PHP)
<form id="form1" name="form1" method="get">
<fieldset class="field_bar" >
<input type="hidden" name="s" id="s" value="search">
<label for="member_code">ค้นหา :</label>
<select name="tbSelect" id="tbSelect">
<option value="member_address" selected <option value="member_address" <?php if(@addslashes($_GET["tbSelect"]) == "member_address") {echo 'selected';}?>> วินจักรยานยนต์</option>
<option value="member_name" <?php if(@addslashes($_GET["tbSelect"]) == "member_name") {echo 'selected';}?>> ชื่อ</option>
<option value="member_lastname" <?php if(@addslashes($_GET["tbSelect"]) == "member_lastname") {echo 'selected';}?>> นามสกุล</option>
</select>
<input name="txtKey" type="text" autofocus class="aqua_textfield12" id="txtKey" placeholder="พิมพ์เพื่อค้นหา แล้วกด Enter" style="" autocomplete="off" value="<?php echo @addslashes($_GET['txtKey']);?>">
<input type="submit" name="show_data" class="button green" value="ค้นหา"><br>
<select name="tbSelect2" id="tbSelect2">
<option value="member_district" selected <option value="member_district" <?php if(@addslashes($_GET["tbSelect"]) == "member_district") {echo 'selected';}?>>หมายเลขเสื้อ</option>
</select>
<input type="text" name="member_number" class="aqua_textfield10" id="member_number" placeholder="กรอกเบอร์เสื้อ" value="<?php echo @addslashes($_GET['member_number']);?>">
<input name="licence1" type="text" class="aqua_textfield10" id="licence1" placeholder="หมวดอักษร" value="<?php echo @addslashes($_GET['licence1']);?>">
<input type="text" name="licence2" class="aqua_textfield10" id="licence2" placeholder="ตัวเลข" value="<?php echo @addslashes($_GET['licence2']);?>"> <select name="licence3" id="licence3" value="<?php echo @addslashes($_GET['licence3']);?>>
<?php
$licence_c = array("","กรุงเทพมหานคร","กระบี่","กาญจนบุรี","กาฬสินธุ์","ขอนแก่น","จันทบุรี","ฉะเชิงเทรา","ชลบุรี","ชัยนาท","ชัยภูมิ","ชุมพร","เชียงราย","เชียงใหม่","ตรัง","ตราด","ตาก","นครนายก","นครปฐม","นครพนม","นครราชสีมา","นครสวรรค์","นนทบุรี","นราธิวาส","น่าน","บึงกาฬ","บุรีรัมย์","ปทุมธานี","ประจวบคีรีขันธ์","ปราจีนบุรี","ปัตตานี","พระนครศรีอยุธยา","พังงา","พัทลุง","พิจิตร","พิษณุโลก","เพชรบุรี","เพชรบูรณ์","แพร่","พะเยา","ภูเก็ต","มหาสารคาม","มุกดาหาร","แม่ฮ่องสอน","ยะลา","ยโสธร","ร้อยเอ็ด","ระนอง","ระยอง","ราชบุรี","ลพบุรี","ลำปาง","ลำพูน","เลย","ศรีสะเกษ","สกลนคร","สงขลา","สตูล","สมุทรปราการ","สมุทรสงคราม","สมุทรสาคร","สระแก้ว","สระบุรี","สิงห์บุรี","สุโขทัย","สุพรรณบุรี","สุราษฎร์ธานี","สุรินทร์","หนองคาย","หนองบัวลำภู","อ่างทอง","อุดรธานี","อุทัยธานี","อุตรดิตถ์","อุบลราชธานี","อำนาจเจริญ");
for($x=0;$x<76;$x++){
if($_GET["licence3"] == $licence_c[$x]){
echo '<option value="'.$licence_c[$x].'" selected>'.$licence_c[$x].'</option>';
}else{
echo '<option value="'.$licence_c[$x].'">'.$licence_c[$x].'</option>';
}
}
?>
</select>
</fieldset>
<?php
if(@addslashes($_GET['show_data'])){
?>
<link rel="stylesheet" type="text/css" href="css/style2.css" />
<div class="field_invisible">
<table width="100%" border="0">
<tr class="aqua_treatment_text_header">
<td width="5%">รูปถ่าย</td>
<td width="15%">ชื่อ-สกุล</td>
<td width="7%">เลขที่ใบอนุญาต</td>
<td width="7%" align="center">ใบอนุญาต<br>
สิ้นอายุ</td>
<td width="8%">เขต / อำเภอ</td>
<td width="25%" align="center">วินจักรยานยนต์</td>
<td width="5%">เบอร์เสื้อ</td>
<td width="7%" align="center">ทะเบียน</td>
<td width="5%">สิ้นอายุภาษี</td>
</tr>
<?PHP
$page = empty($_GET['page']) ? 1 : $_GET['page'];
$search = ! empty($_GET['member_code']) ? htmlspecialchars($_GET['member_code']) : NULL;
// แสดงข้อมูลก่อนการค้นหา
$query = " SELECT * FROM member where member_st='สมาชิก'
"; //คำสั่ง SQL
$query.= ( (addslashes($_GET["tbSelect2"]) !="") && (addslashes($_GET["member_number"]) !="") && (addslashes($_GET["member_number"]) !="") ) ? " AND (" . $_GET["tbSelect2"] . " LIKE '" . $_GET["member_number"] . "') " : "";
$query.= ( (addslashes($_GET["tbSelect"]) !="") && (addslashes($_GET["txtKey"]) !="") && (addslashes($_GET["txtKey"]) !="") ) ? " AND (" . $_GET["tbSelect"] . " LIKE '%" . $_GET["txtKey"] . "%') " : "";
$objQuery = mysql_query($query) or die("ไม่สามารถค้นหาได้ [" . $query . ']<br>['.mysql_error().'] ');
// กำหนดเงื่อนไขในการค้นหา โดยให้เลือกฟิลด์ที่กำหนด
$sql = mysql_query($query);
$total_records = mysql_num_rows($sql); //นับจำจำนวน record
$scroll_page = 5; //จำนวนแบ่งหน้าที่จะให้แสดง คือ <ก่อนหน้า , 1 , 2 , 3 , ต่อไป>
$per_page = 25;
$current_page = $page; //รับค่าเพจ
$pager_url = '?p=members_ok&tbSelect='.$_GET["tbSelect"].'&txtKey='.$_GET["txtKey"].'&page='; //URL ตามตัวครับ
$inactive_page_tag = 'id="current_page"'; //ตำแหน่งหน้าปัจจุบัน
$previous_page_text = '< ย้อนกลับ'; //ปุ่มย้อนกลับ
$next_page_text = 'ถัดไป >'; //ปุ่มถัดไป
$first_page_text = '<< หน้าแรก'; //ปุ่มหน้าแรก
$last_page_text = 'หน้าสุดท้าย >>'; //ปุ่มหน้าสุดท้าย
$kgPagerOBJ = new kgPager(); #เรียกใช้งาน class
$kgPagerOBJ -> pager_set($pager_url, $total_records, $scroll_page, $per_page, $current_page, $inactive_page_tag, $previous_page_text, $next_page_text, $first_page_text, $last_page_text, $pager_url_last);
$sql = mysql_query($query." ORDER BY member_address LIMIT ".$kgPagerOBJ -> start.", ".$kgPagerOBJ -> per_page."");
#------ตัวแบ่งหน้า คือ <ก่อนหน้า , 1 , 2 , 3 , ต่อไป> จะเอาไปแปะตรงไหนก็ได้ในหน้าเพจ----#
echo '<p id="pager_links">';
echo $kgPagerOBJ -> first_page;
echo $kgPagerOBJ -> previous_page;
echo $kgPagerOBJ -> page_links;
echo $kgPagerOBJ -> next_page;
echo $kgPagerOBJ -> last_page;
#-------------ส่วนแสดงผลจำนวน record ทั้งหมด--------------#
if($kgPagerOBJ -> total_records == 0){
$display_alert = '<div class="alert_box red"><img src="media/icons/set/white/alert2.png" width="32" height="32">ไม่พบข้อมูล! หรือ "ไม่ได้เป็นผู้ขับขี่สมาชิกจักรยานยนต์สาธารณะ"</div>';
}
echo @$display_alert;
echo '<strong> จำนวนแถว : </strong>';
echo $kgPagerOBJ -> total_records; echo '<strong> แถว</strong>';
echo ' <strong>จำนวน : </strong>';
echo $kgPagerOBJ -> total_pages; echo '<strong> หน้า</strong>';
#-------------จบส่วนแสดงผลจำนวน record ทั้งหมด--------------#
while ($read = mysql_fetch_assoc($sql)) {
#-------------ส่วนแสดงผล--------------#
if($read['member_status'] != 1){
$bg = 'bgcolor="#CCCCCC"';
}else{
$bg = 'bgcolor="#8DC2FF"';
}
?>
<tr class="aqua_treatment_text" id="<?php echo $read['member_key']?>">
<td align="center" <?php echo @$bg;?>><img src="resource/members/images/<?php echo $read['member_photo']?>" width="50" alt="" id="photo_border"/></td>
<td <?php echo @$bg;?>> <?php echo $read['member_prefix'].$read['member_name']." ".$read['member_lastname'];?></td>
<td align="center" <?php echo @$bg;?>><?php echo $read['member_numcard']?></td>
<td align="center" <?php echo @$bg;?>><?php echo @dateTimeConvertoredit($read['member_numcard_end'])?></td>
<td align="center" <?php echo @$bg;?>><?php echo $read['member_subdistrict'];?></td>
<td align="center" <?php echo @$bg;?>> <?php echo $read['member_address'];?></td>
<td align="center" <?php echo @$bg;?>> <?php echo $read['member_district'];?></td>
<td align="center" <?php echo @$bg;?>><?php echo $read['member_licence_a'].$read['member_licence_b']." <br>".$read['member_licence_c']?></td>
<td align="center" <?php echo @$bg;?>><?php echo @dateTimeConvertoredit($read['date_licence'])?></td>
</tr>
<?php
}
?>
</table>
<?php
#------ตัวแบ่งหน้า คือ <ก่อนหน้า , 1 , 2 , 3 , ต่อไป> จะเอาไปแปะตรงไหนก็ได้ในหน้าเพจ----#
echo '<p id="pager_links">';
echo $kgPagerOBJ -> first_page;
echo $kgPagerOBJ -> previous_page;
echo $kgPagerOBJ -> page_links;
echo $kgPagerOBJ -> next_page;
echo $kgPagerOBJ -> last_page;
#-------------ส่วนแสดงผลจำนวน record ทั้งหมด--------------#
echo '<strong> จำนวนแถว : </strong>';
echo $kgPagerOBJ -> total_records; echo '<strong> แถว</strong>';
echo ' <strong>จำนวน : </strong>';
echo $kgPagerOBJ -> total_pages; echo '<strong> หน้า</strong>';
#-------------จบส่วนแสดงผลจำนวน record ทั้งหมด--------------#
?>
<?php
}
?>
ผมลงทำหลายรอบละครับพอได้ก็ค้นหาได้แค่ทะเบียนซะงั้น 3ช่องท้ายชื่อ licence1 licence2 licence3 ลองสร้างหลายรอบแล้วอันนี้หาได้แค่วินหรือชื่อหรือนามสกุล + เบอร์เสื้อ ขาด ทะเบียน3ช่องสุดท้ายครับTag : PHP, Appserv
Date :
2019-07-05 01:22:05
By :
Error 404
View :
539
Reply :
5
วิเคราะห์ความต้องการก่อนว่า ทั้ง 3 condition นั้น ต้องการอย่างใดอย่างหนึ่งที่เหมือน หรือต้องเหมือน ทั้ง 3 เลย หรือ เป็นอย่างอื่น
ก็เลือกใช้ and หรือ or ตามความเหมาะสม และอย่าลืม วงเล็บครอบ condition ที่แตกต่างกัน ด้วย
ไม่ใช่ and and or โดยไม่มีวงเล็บเลย เดี๋ยวมันจะมาทั้งหมด หรือ ไม่มาทั้งหมดเอา
Date :
2019-07-05 07:38:59
By :
Chaidhanan
062
Code (PHP)
$objQuery = mysql_query($query) or die("ไม่สามารถค้นหาได้ [" . $query . ']<br>['.mysql_error().'] ');
// กำหนดเงื่อนไขในการค้นหา โดยให้เลือกฟิลด์ที่กำหนด
echo '----<br>-----<br>'.$query;// เอา statement มาดูหน่อย
print_r( mysql_fetch_assoc($objQuery)); // เอาข้อมูลมาดูด้วย
exit;
Date :
2019-07-05 13:57:21
By :
Chaidhanan
ตรวจสอบ condition ให้ดี ต้องใช้ and หรือ or
หรือ ไม่ต้องมี condition เช่น ถ้าข้อมูลเป็นค่าว่าง ก็ไม่ต้องสร้าง condition
Date :
2019-07-05 15:35:35
By :
Chaidhanan
Load balance : Server 01