รบกวนสอบถามปัญหา search ไม่สามารถค้นหาออกมาได้ ไม่รู้ว่าผิดตรงไหนอะครับ
อย่างนี้ป่าว ?
042. $sql = "select * from tperson where IDCARD like '%$IDCARD%'";
Date :
2014-11-26 16:36:55
By :
sabaitip
$sql = "select * from $tperson where $IDCARD like '%$search %'";
สีแดงข้างบน เอามาจากไหนครับ
Code (PHP)
// 043.
$dbquery = mysql_db_query($dbname, $sql);
//$num_rows = mysql_num_rows($dbquery);
$result=mysql_db_query($dbname,$sql);
//$number=mysql_num_rows($result);
$no=1;
//048.
if ($number<>0) {
แก้เป็น
Code (PHP)
//$dbquery = mysql_db_query($dbname, $sql) or die ($sql . "<br>\n" . mysql_error());
//$num_rows = mysql_num_rows($dbquery);
$result=mysql_db_query($dbname,$sql) or die ($sql . "<br>\n" . mysql_error());
$number=mysql_num_rows($result); // เปิดใช้งาน เอา // ออก บันทัดที่ 048 จะได้ทำงานตรวจสอบได้
$no=1;
//048.
if ($number<>0) {
ปล ตัวแปรประเภท array ใส่ single quote ครอบ ชื่อ field ด้วยครับ ลด warning
$ref_id_position=$rs[ref_id_position ];
แก้เป็น
$ref_id_position=$rs['ref_id_position' ];
ประวัติการแก้ไข 2014-11-26 16:45:11 2014-11-26 16:48:52
Date :
2014-11-26 16:44:18
By :
Chaidhanan
เกิดเออเลอแบบนี้ select * from where 1101500179938='1101500179938'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where 1101500179938='1101500179938'' at line 1
มันผิดตรงไหนครับ (runบนServer)
$sql = "select * from $tperson where $IDCARD like '%$search%'"; ส่วนบรรทัดนี้ ผมลองใช้ใน localhost ใช้ได้ปกติ แต่เอาขึ้นServer กลับใช้ไม่ได้ เป็นที่อะไรอะครับ
Date :
2014-11-27 09:28:55
By :
scorpion86
$sql = "select * from $tperson where $IDCARD like '%$search%'";
ลองใส่ single quote ครอบ สีแดงดํนะครับ
แต่น่าจะใช้ = มากกว่า like นะครับ เช็คทั้งฟีลด์
ปล.
ปกติที่เคยเห็น เขาจะเปรียบเทียบ field กับ variable เพื่อเลือก record ที่มี field ตรงกับตัวแปร ไม่ได้เอาทุกเรคคอร์ด
แต่นี้ เป็นการ เปรียบเทียบ variable กับ variable ซึ่งหมายความว่า ทุกเรคคอร์ด จะออกมาหมด ถ้า variable ตรงกัน
มันก็ไม่ผิดแต่แปลกใจ
Date :
2014-11-27 11:20:36
By :
Chaidhanan
แก้ไขแล้ว....ก็ยังไม่ได้อะครับ เหมือนเดิม ไม่รู้ว่าผิดตรงไหนอะครับ รบกวนช่วยผมหน่อยครับ
Date :
2014-11-27 13:22:14
By :
scorpion86
$sql = "select * from $tperson where $IDCARD like '%$search%'";
แต่ result ได้แบบข้างล่าง
select * from where 1101500179938='1101500179938'
ชื่อ table มันหายไป ครับ
ก็อย่างที่ผมถาม ในคห ที่2 ครับ
Date :
2014-11-27 14:11:12
By :
Chaidhanan
syntax SQL ผิดครับ เนื่องจากมีตัวแปร 2 ตัวที่ไม่ได้กำหนดค่า
1.ตัวแปร $tperson (ชื่อ table)
2.ตัวแปร $IDCARD (ชื่อ field)
ทางแก้คือกำหนดค่าให้มันครับ หรือลบ ออกไปเลย เช่น tableชื่อ employee และ field ที่ต้องการคนหาชื่อ citizen_id
รูปแบบที่ 1 กำหนดตัวแปรก่อน
$tperson = "employee";
$IDCARD = "citizen_id";
$sql = "select * from $tperson where $IDCARD like '%$search%'";
รูปแบบที่ 2 ไม่ต้องกำหนดตัวแปร
$sql = "select * from employee where citizen_id like '%$search%'";
ประมานนี้ครับ
ประวัติการแก้ไข 2014-11-27 14:30:01
Date :
2014-11-27 14:29:36
By :
zinlucifer
ลองเขียนตามนี้ดูครับ
Code (PHP)
$sql = "select * from employee where citizen_id where '".$_POST['IDCARD']."'";
Date :
2014-11-27 16:39:29
By :
zinlucifer
ลองอ่านคห4 ตรง ปล. ดูครับ ว่าทำไมมันแสดงออกมาหมด
ปล. ลองอ่านไล่ใหม่ตั้งแต่ความเห็นแรกเลยครับ มันผิดหลายที่เกิน
ลองอ่านในส่วนที่มีการ comment ไว้แล้วแก้ทีละอย่างนะครับ
อันดับแรก ตัวแปร กำหนดให้มัน ก่อนนำมาใช้ ถ้าไม่กำหนดมันก็เออเร่อร์ ไม่หยุดครับ
ประวัติการแก้ไข 2014-11-28 11:33:38
Date :
2014-11-28 11:30:28
By :
Chaidhanan
Load balance : Server 02