สอบถามผู้รู้หน่อย ครับบบบบ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามผู้รู้หน่อย ครับบบบบ

สอบถามผู้รู้หน่อย ครับบบบบ
form ปุ่มเลือกรายการ

<form method="post" action="asset.php" id="formsearch">
 
     <? $strSQL = "select * from asset_category ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
     เลือก <select name="txtName" id="txtName" >
     <option selected="selected" value="">-- เลือกประเภทครุภัณฑ์ --</option>
     <? while($objResult = mysql_fetch_array($objQuery))
        {
?>
         <option value="<?=$objResult["category_id"];?>" <? if($txtName==$objResult["category_id"]) echo ' selected '; ?> >
                  <?=$objResult["category_name"];?>
        <?
        }
?>
 
     </select>
     
 <? $strSQL2 = "select * from hospital_department";
 
$objQuery2 = mysql_query($strSQL2) or die ("Error Query [".$strSQL2."]");
?>
     เลือก <select name="txtDepart" id="txtDepart" >
     <option selected="selected" value="">-- เลือกหน่วยงาน--</option>
     <? while($objResult2 = mysql_fetch_array($objQuery2))
        {
?>   
         <option value="<?=$objResult2["id"];?>" <? if($txtDepart==$objResult2["id"]) echo ' selected '; ?> >
                  <?=$objResult2["name"];?>
        <?
        }
?>
     </select>
     <input type="submit" class="button" value="ตกลง">
     </form>

SQL
<?
 
$strSQL10 = "select a.asset_id,a.asset_name,a.asset_number,asset_brand,a.asset_date,c1.company_name,h.name as departname,a.status_id from asset a ";
$strSQL10 .= " left outer join asset_category c on c.category_id = a.category_id ";
$strSQL10 .= " left outer join asset_company c1 on c1.company_id = a.company_id";
$strSQL10 .= " left outer join hospital_department h on h.id = a.depart_id";
$strSQL10 .= " where a.category_id = ' ".$_REQUEST["txtName"]." ' and a.depart_id = ' ".$_REQUEST["txtDepart"]." '";
$objQuery10 = mysql_query($strSQL10);
$Num_Rows = mysql_num_rows($objQuery10);

ปัญหาคือ ค้นหา ประเภทครุภัณฑ์ ได้ ปกติ //ค้นหาหน่วยงาน ไม่ได้เลย ครับ //ค้นหา ทั้ง2 ได้ ครับ //ช่วยดูหน่อย ครับ ขอบคุณครับ


Baby 1.179.131.xxx 29-03-2016 16:18:58

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
แนวทางคงต้อง เช็คค่าคำสั่ง sql ว่า ถูกต้องหรือไม่
อาจจะทำการ echo ค่ามาแล้วไปทดสอบใน phpmyadmin


ninenik 183.89.144.xxx 29-03-2016
 ความคิดเห็นที่ 2

SQL....ก็แสดงปกติครับ //แต่ผมไม่แน่ใจ ตรง where a.category_id = ' ".$_REQUEST["txtName"]." ' and a.depart_id = ' ".$_REQUEST["txtDepart"]." '";


baby 1.179.131.xxx 30-03-2016 09:05
 ความคิดเห็นที่ 3
ทดสอบแบบที่มี WERE เลย
แล้วก็กำหนดค่าตายตัวไปสักค่า เพื่อดูคำสั่งทำงานถูกต้องไหม
ถ้าคำสั่งทำงานถูกต้องเมื่อสมมติค่าแล้ว
ก็มาดูว่าการส่งค่าจากตัวแปร _REQUEST ว่าค่ามาถูกต้องไหม เงื่อนไขการตรวจสอบทั้งหมด
ก็น่าจะประมาณนี้ 


ninenik 183.89.144.xxx 30-03-2016
 ความคิดเห็นที่ 4

ตรงจุด WHERE ถ้าโปรแกรมนี้  a.depart_id='107' and a.category_id='15' ทั้ง2 หรือ ยังใดยัง1 ก็จะแสดง หมดครับ
แต่พอไปใช้ใน php จุด WHERE ถ้าใส แค่ 1 เงือนไข แสดงปกติ ถ้า ใส 2เงือนไข  อันที่2 จะไม่แสดงข้อมูล ครับ


baby 1.179.131.xxx 30-03-2016 11:25
 ความคิดเห็นที่ 5
อาจจะเป็นเพราะไม่มีข้อมูลตามเงื่อนไข ดูว่าเงื่อนไขเราต้องเป็น AND หรือ OR 
ถ้าเงือนไขเป็น AND ก็แสดงว่าไม่มีข้อมูลตรง ถึงไม่แสดง 


ninenik 183.89.144.xxx 30-03-2016
 ความคิดเห็นที่ 6
มีช่องเลือก  4 ช่อง 

เช่น เลือก (ช่อง 1 and ช่อง2 ) or(ช่อง1 and ช่อง2 and ช่อง3 and ช่อง4)

เลือก (ช่อง 1 and ช่อง2 ) กดตกลง แสดงข้อมูลได้
 or 
เลือก (ช่อง1 and ช่อง2 and ช่อง3 and ช่อง4) กดตกลง แสดงข้อมูลได้

ประมาณนี้ไหมครับบตรงจุก WHERE


baby 1.179.131.xxx 31-03-2016 10:00
 ความคิดเห็นที่ 7
อันนี้ต้องลองเอง ไม่แน่ใจเหมือนกัน ปรับจนกว่าจะถูก เพราะเงื่อนไขขึ้นกับข้อมูล


ninenik 183.89.144.xxx 31-03-2016
 ความคิดเห็นที่ 8
ขอบคุณมากๆครับ


baby 1.179.131.xxx 31-03-2016 11:03
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ