 |
รบกวนช่วยดูโค้ด ค้นหา 2 ตาราง ให้หน่อยค่ะ (ติดค้นหา) |
|
 |
|
|
 |
 |
|
Code (PHP)
echo $strQuery;
ได้ค่าอะไร เอาออกมาดูหน่อยครับ
|
 |
 |
 |
 |
Date :
2017-02-14 11:41:35 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เช็ค sql ครับ ผมดูแล้วมันแปลกๆ
รับค่า search มาค่าเดียวใช้ค้นหา 2col แต่ใช้and
|
 |
 |
 |
 |
Date :
2017-02-14 15:17:19 |
By :
tenten |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
งั้นปัญหาน่าจะเป็นที่คำสั่ง where ครับ
ถ้ารับมาค่าเดียวก็ให้เปลี่ยน and เป็น or
|
 |
 |
 |
 |
Date :
2017-02-15 14:09:33 |
By :
tenten |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
<?php
$strQuery = "SELECT append.p_id,contract.contract_num ,contract.date_con_up,contract.contract_name ,contract.contract_file, append.date_app_up,append.append_name,append.append_file,contract.con_description
FROM contract
LEFT JOIN append ON contract .contract_id= append.contract_id";
if(isset($_POST['search']) )
{ $strQuery .=" WHERE con_description LIKE '%". $_POST['search']. "%' ";
$strQuery .=" OR p_id LIKE '%". $_POST['search']. "%' ";
}
$strQuery = $strQuery . ";";
//echo $strQuery . "</br>";
$check_log = mysql_query($strQuery) or die (mysql_error());
$num = mysql_num_rows($check_log);
if($num <=0) {
}
$n=0;//ให้ค่า n= 0
while ($objResult = mysql_fetch_array($check_log)){
ลองแบบนี้ครับ
|
 |
 |
 |
 |
Date :
2017-02-15 15:01:34 |
By :
limberger |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลอง where ทีละตัวดูครับ เช็คว่ามันผิดตรงไหน
แล้วตรง p_id ใช้ = แทน like
มันแค่ 2 บรรทัดเอง ไล่เช็คค่าแป๊บเดียวก็น่าจะแก้ได้แล้ว
|
 |
 |
 |
 |
Date :
2017-02-15 15:34:30 |
By :
tenten |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
SELECT append.p_id,contract.contract_num ,contract.date_con_up,contract.contract_name ,contract.contract_file, append.date_app_up,append.append_name,append.append_file,contract.con_description
FROM contract
LEFT JOIN append ON contract .contract_id= append.contract_id
WHERE con_description LIKE '%a*%' OR p_id LIKE '%*%'
ลองอันนี้ได้คำตอบป่ะ
|
 |
 |
 |
 |
Date :
2017-02-15 15:44:37 |
By :
limberger |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
งั้นขอดูฟอร์ม search หน่อย
|
 |
 |
 |
 |
Date :
2017-02-15 16:47:43 |
By :
tenten |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอเป็นโค้ดสิครับ เอาเฉพาะตรงฟอร์ม
|
 |
 |
 |
 |
Date :
2017-02-15 17:07:24 |
By :
tenten |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองใส่ alias ของ table ใน where clause ดู
Code (PHP)
$strQuery = $strQuery . " WHERE contract.con_description LIKE '%". $_POST['search']. "%' ";
$strQuery = $strQuery . " AND append.p_id LIKE '%". $_POST['search']. "%' ";
|
 |
 |
 |
 |
Date :
2017-02-16 09:27:20 |
By :
Luz |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คุณลองเอา sql command อย่างเดียว ไปลอง query ดูก่อนครับ ว่าได้คำตอบไหม
แล้วเอาผลลัพธ์มาดูหน่อย
|
 |
 |
 |
 |
Date :
2017-02-16 09:44:58 |
By :
limberger |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
- -* คุณต้องการ search แบบมีเงื่อนไข ทำไมไม่เอาเงื่อนไขใส่ลงไปด้วยอ่ะครับ
><"
|
 |
 |
 |
 |
Date :
2017-02-16 10:09:31 |
By :
limberger |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
SELECT append.p_id,contract.contract_num ,contract.date_con_up,contract.contract_name ,contract.contract_file, append.date_app_up,append.append_name,append.append_file,contract.con_description
FROM contract
LEFT JOIN append ON contract .contract_id= append.contract_id
WHERE con_description LIKE 't%' OR p_id LIKE '1'
ลองอันนี้ครับ แล้วขอดูผลลัพธ์หน่อย
ถ้ารันแล้วผ่านมันจะโชว์เฉพาะแถวที่มีค่าขึ้นต้นด้วย Txxxx ในคอลัมน์ con_description
|
 |
 |
 |
 |
Date :
2017-02-16 10:26:12 |
By :
limberger |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณทุกคนค่ะ ตอนนี้ได้แล้ว ไปใส่ method="post" ตรง form ขอบคุณค่ะ
|
 |
 |
 |
 |
Date :
2017-02-16 10:48:01 |
By :
nachon |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
- -*
ถ้าไม่เลือก method มันจะ default เป็น GET
|
 |
 |
 |
 |
Date :
2017-02-16 10:58:36 |
By :
limberger |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|