Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > สอบถามเรื่องการ ทำค้นหา php แบบหลายตาราง หน่อยครับ



 

สอบถามเรื่องการ ทำค้นหา php แบบหลายตาราง หน่อยครับ

 



Topic : 120055



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์




อยากทำระบบค้นหา แบบหลายตารางครับ โดยผมทำการลอง inner join แล้ว แต่ติดตรงที่ว่าต้องการให้มันค้นหาในตารางอื่นที่ไม่เกี่ยวกับ ตารางหลัก แต่เกี่ยวกับตาราง fk อีกทีครับ
เช่น survey_detail เป็นตารางหลัก ในการค้นหา
ผมให้ survey_detail มี fk คือ surveying,และ tree ; survey_detail.sur_id = surveying.sur_id , survey_detail.tree_id=tree.tree_id
และมีตารางที่กี่ยวกับ ตาราง surveying คือ user ; surveying.user_id = user.user_id
ตารางที่เกี่ยวกับ tree คือ plant ; tree.pnt_id = plant.pnt_id

Code (PHP)
$Qtotal = mysql_query("SELECT *from survey_detail inner join
tree on survey_detail.tree_id = tree.tree_id inner join
plant on tree.pnt = plant.pnt_id inner join
surveying on survey_detail.sur_id = surveying.sur_id inner join
user on surveying.user_id = user.user_id 
 where  ".$Search2." like '%".$Search."%'  ");




Tag : PHP, MySQL









ประวัติการแก้ไข
2015-11-20 00:38:02
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-11-20 00:35:47 By : sacool View : 1581 Reply : 29
 

 

No. 1



โพสกระทู้ ( 1,150 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

join ตารางเอาข้อมูลออกมาทั้งหมดนั่นแหละ แล้ว select ครอบ select ที่ join อีกทีแล้วค่อย where หาค่าตามเงื่อนไข






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 09:41:13 By : progamer2000
 


 

No. 2



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : progamer2000 เมื่อวันที่ 2015-11-20 09:41:13
รายละเอียดของการตอบ ::
Code (PHP)
<?
if(!isset($start)){
$start = 0;
$page=1;
}
$limit = '20';

if($strSearch=="Y"){
$Qtotal = mysql_query("SELECT *from survey_detail inner join
tree on survey_detail.tree_id = tree.tree_id inner join
plant on tree.pnt = plant.pnt_id inner join
surveying on survey_detail.sur_id = surveying.sur_id inner join
user on surveying.user_id = user.user_id 
 where  ".$Search2." like '%".$Search."%'  ");
}else{
$Qtotal = mysql_query("SELECT * FROM `survey_detail`A LEFT JOIN
						 `tree` B  ON A.tree_id = B.tree_id LEFT JOIN
						 `plant` C ON B.pnt_id = C.pnt_id LEFT JOIN
						 `surveying` D ON A.sur_id = D.sur_id LEFT JOIN
						 `user` E ON D.user_id = E.user_id LEFT JOIN
						 `family` F ON C.family_id = F.family_id 
						 WHERE A.approve_status = '0'   ORDER BY sur_detail_id DESC");
}
$total = mysql_num_rows($Qtotal); 
if($strSearch=="Y"){
$Qtotal = mysql_query("SELECT *from survey_detail inner join
tree on survey_detail.tree_id = tree.tree_id inner join
plant on tree.pnt = plant.pnt_id inner join
surveying on survey_detail.sur_id = surveying.sur_id inner join
user on surveying.user_id = user.user_id 
 where ".$Search2." like '%".$Search."%'   order  by  sur_detail_id DESC LIMIT $start,$limit");
}else{
$Query= mysql_query("SELECT * FROM `survey_detail`A LEFT JOIN
						 `tree` B  ON A.tree_id = B.tree_id LEFT JOIN
						 `plant` C ON B.pnt_id = C.pnt_id LEFT JOIN
						 `surveying` D ON A.sur_id = D.sur_id LEFT JOIN
						 `user` E ON D.user_id = E.user_id LEFT JOIN
						 `family` F ON C.family_id = F.family_id   
						 WHERE A.approve_status = '0'   ORDER BY sur_detail_id DESC LIMIT $start,$limit");
}

$totalp = mysql_num_rows($Query);
$xx=$totalp+$start;
$yy=$start+1;
echo "ข้อมูลที่ ".$yy." ถึงข้อมูลที่ ".$xx;
printf(" | จากทั้งหมด %d รายการ  ",$total);
printf(" | หน้าที่ %d <br />",$page);
?>



มันขึ้น error ครับ

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\Web Project\page_managersurveydetail.php on line 417

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\Web Project\page_managersurveydetail.php on line 435

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\Web Project\page_managersurveydetail.php on line 457




ประวัติการแก้ไข
2015-11-20 16:43:09
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 16:19:32 By : sacool
 

 

No. 3



โพสกระทู้ ( 1,150 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

55555 ทำอะไรอะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 16:28:04 By : progamer2000
 


 

No. 4



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ค้นหา ครับ ผม join ตารางจากข้างบน ค้นหา
Code (PHP)
$Qtotal = mysql_query("SELECT *from survey_detail inner join
tree on survey_detail.tree_id = tree.tree_id inner join
plant on tree.pnt = plant.pnt_id inner join
surveying on survey_detail.sur_id = surveying.sur_id inner join
user on surveying.user_id = user.user_id 
 where  ".$Search2." like '%".$Search."%'  ");



ประวัติการแก้ไข
2015-11-20 16:34:39
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 16:32:42 By : sacool
 


 

No. 5



โพสกระทู้ ( 1,150 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

Code (PHP)
$Qtotal = mysql_query("SELECT *from survey_detail inner join
tree on survey_detail.tree_id = tree.tree_id inner join
plant on tree.pnt = plant.pnt_id inner join
surveying on survey_detail.sur_id = surveying.sur_id inner join
user on surveying.user_id = user.user_id 
 where  ".$Search2." like '%".$Search."%'  ");



เอามาแค่นี้
Code (SQL)
SELECT *from survey_detail inner join
tree on survey_detail.tree_id = tree.tree_id inner join
plant on tree.pnt = plant.pnt_id inner join
surveying on survey_detail.sur_id = surveying.sur_id inner join
user on surveying.user_id = user.user_id 
 where  ".$Search2." like '%".$Search."%' 


แก้เป็น

Code (SQL)
SELECT tb.* FROM (
SELECT *from survey_detail inner join
tree on survey_detail.tree_id = tree.tree_id inner join
plant on tree.pnt = plant.pnt_id inner join
surveying on survey_detail.sur_id = surveying.sur_id inner join
user on surveying.user_id = user.user_id 
)  tb
WHERE tb.".$Search2." like '%".$Search."%' 



เอาไปใส่ใน ฟังชั่น

Code (PHP)
$Qtotal = mysql_query("SELECT tb.* FROM (
SELECT *from survey_detail inner join
tree on survey_detail.tree_id = tree.tree_id inner join
plant on tree.pnt = plant.pnt_id inner join
surveying on survey_detail.sur_id = surveying.sur_id inner join
user on surveying.user_id = user.user_id 
)  tb
WHERE tb.".$Search2." like '%".$Search."%' ");



ตัวอย่างนะคับ ไปประยุกต์เอาเองน้อ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 16:33:03 By : progamer2000
 


 

No. 6



โพสกระทู้ ( 1,150 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ถ้าอยู่ใกล้นิ ตีตายเลยนะคับ มันพีคมากๆ ที่เขียนมาแบบนี้

Code (PHP)
$Qtotal = mysql_query("$Qtotal = mysql_query("SELECT *from survey_detail inner join
tree on survey_detail.tree_id = tree.tree_id inner join
plant on tree.pnt = plant.pnt_id inner join
surveying on survey_detail.sur_id = surveying.sur_id inner join
user on surveying.user_id = user.user_id 
 where  ".$Search2." like '%".$Search."%'  ");

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 16:34:52 By : progamer2000
 


 

No. 7



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : progamer2000 เมื่อวันที่ 2015-11-20 16:34:52
รายละเอียดของการตอบ ::
แฮ่ ๆ ๆ ก็อยากอธิบายให้ง่ายที่สุดอ่ะครับ แต่ว่าตัวนั้น ก็อปไป ดันก็อปผิดตัว คราวหน้าไม่ทำอีกแล้วคร๊าาาาฟ



ประวัติการแก้ไข
2015-11-20 16:41:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 16:39:59 By : sacool
 


 

No. 8



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : progamer2000 เมื่อวันที่ 2015-11-20 16:33:03
รายละเอียดของการตอบ ::
Code (PHP)
$Qtotal = mysql_query("SELECT tb.* FROM (
SELECT *from survey_detail inner join
tree on survey_detail.tree_id = tree.tree_id inner join
plant on tree.pnt = plant.pnt_id inner join
surveying on survey_detail.sur_id = surveying.sur_id inner join
user on surveying.user_id = user.user_id 
)  tb
WHERE tb.".$Search2." like '%".$Search."%' ");


คือ tb.* นี่คือ tb1.*,tb2.* แบบนี้หรือเปล่าครับ หรือว่า เอาแค่ tb เดียว แล้วทำต่อ ๆ ไปอีกครับ
และส่วน tb ข้างล่างนี่ เป็น tb1,tb2,tb3 หรือเปล่าครับ หรือทำแยกกัน
ขอบคุณครับ พอดีสับสน แฮร่ ๆ รบกวนด้วยนะครับ




ประวัติการแก้ไข
2015-11-20 18:24:38
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 18:23:39 By : sacool
 


 

No. 9



โพสกระทู้ ( 1,150 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ลองเอา คิวรี่ไปรันเทสก่อน ว่าผ่านเปล่า

ถ้าผ่าน ลองใส่ค่าที่ตัวเสิชลงไป ว่าผ่านไหม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 19:05:51 By : progamer2000
 


 

No. 10



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 9 เขียนโดย : progamer2000 เมื่อวันที่ 2015-11-20 19:05:51
รายละเอียดของการตอบ ::

ลองเอาไปรันใน phpmyadmin ขึ้นแบบนี้ครับ

Error
SQL query: Documentation

SELECT *
FROM (


SELECT *
FROM survey_detail
INNER JOIN tree ON survey_detail.tree_id = tree.tree_id
INNER JOIN plant ON tree.pnt_id = plant.pnt_id
INNER JOIN surveying ON survey_detail.sur_id = surveying.sur_id
INNER JOIN user ON surveying.user_id = user.user_id
)survey_detail, tree, plant, surveying
WHERE survey_detail
OR tree
OR plant
OR surveying LIKE '%"w"%'
LIMIT 0 , 30
MySQL said: Documentation

#1060 - Duplicate column name 'tree_id'

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-20 22:42:08 By : sacool
 


 

No. 11



โพสกระทู้ ( 1,150 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

เอ่อ join ข้างในให้เสร็จไปก่อนซิครับ แล้วค่อยเอา select ครอบ ไม่ใช่ join ใน แล้ว มา join นอกต่อ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-21 00:10:07 By : progamer2000
 


 

No. 12



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

แนะนำ การใช้คำสั่ง inner join กับหลายตาราง
กรณี่ที่ใช้
Code (SQL)
from
tb1 
inner join tb2 on ......
inner join tb3 on .....


จำทำการ คิวรี่ tb1 inner join tb2 ก่อน ได้ result มาค่อยเอาไป inner join กับ tb3
เป็นการทำ จากซ้ายไปขวา ตามลำดับ

ให้เปลี่ยน เป็น
Code (SQL)
from tb1, tb2, tb3
where tb1.id=tb2.fk_tb1 and tb2.id=tb3.fk_tb2

จะเป็นการ เปรียบเทียบ โดยการนำ tb1,tb2,tb3 มาเปรียบเทียบ พร้อมกัน
จะเร็วกว่าในกรณีข้อมูลเยอะๆ

ถ้าไม่มีความจำเป็นให้หลีกเลี่ยงวิธีที่ 1 (มันง่ายต่อการเข้าใจ แต่มันช้าในการทำงานจริง)
แต่ถ้ามีแค่ 2 ตาราง ก็โอเคเลยครับ

ปล. อันนี้เป็นวิธีการทำงานของmysql เวอร์ชั่นเก่าๆ ซึ่งเมื่อก่อนเขาแจก source มาให้แกะเล่นได้
แต่รุ่นใหม่นี้ไม่รู้เขาแก้ไขอะไรไปบ้างขนาดไหนนะครับ ไม่ได้อ่านมาหลายเวอร์แล้ว มันเปลี่ยนเร็วจริงๆ
ว่าจะหาเวลาว่างไปอ่าน document อยู่แต่ยังไม่มีเวลา + ขี้เกียจ 5555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-21 04:05:58 By : NewbiePHP
 


 

No. 13



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 12 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-21 04:05:58
รายละเอียดของการตอบ ::
Code (PHP)
 <?
if(!isset($start)){
$start = 0;
$page=1;
}
$limit = '20';

if($strSearch=="Y"){
$Qtotal = mysql_query("SELECT * FROM survey_detail,surveying,tree,plant,user
 where survey_detail.sur_id=surveying.sur_id and survey_detail.tree_id=tree.tree_id and tree.pnt_id=plant.pnt_id and surveying.user_id = user.user_id ".$Search2." like '%".$Search."%'  ");
}else{
$Qtotal = mysql_query("SELECT * FROM `survey_detail`A LEFT JOIN
						 `tree` B  ON A.tree_id = B.tree_id LEFT JOIN
						 `plant` C ON B.pnt_id = C.pnt_id LEFT JOIN
						 `surveying` D ON A.sur_id = D.sur_id LEFT JOIN
						 `user` E ON D.user_id = E.user_id LEFT JOIN
						 `family` F ON C.family_id = F.family_id 
						 WHERE A.approve_status = '0'   ORDER BY sur_detail_id DESC");
}
$total = mysql_num_rows($Qtotal); 
if($strSearch=="Y"){
 
$Query = mysql_query("SELECT * FROM survey_detail,surveying,tree,plant,user
 where survey_detail.sur_id=surveying.sur_id and survey_detail.tree_id=tree.tree_id and tree.pnt_id=plant.pnt_id and surveying.user_id = user.user_id ".$Search2." like '%".$Search."%'   order  by  sur_detail_id DESC LIMIT $start,$limit");
	
	}else{
$Query= mysql_query("SELECT * FROM `survey_detail`A LEFT JOIN
						 `tree` B  ON A.tree_id = B.tree_id LEFT JOIN
						 `plant` C ON B.pnt_id = C.pnt_id LEFT JOIN
						 `surveying` D ON A.sur_id = D.sur_id LEFT JOIN
						 `user` E ON D.user_id = E.user_id LEFT JOIN
						 `family` F ON C.family_id = F.family_id   
						 WHERE A.approve_status = '0'   ORDER BY sur_detail_id DESC LIMIT $start,$limit");
}

$totalp = mysql_num_rows($Query);
$xx=$totalp+$start;
$yy=$start+1;
echo "ข้อมูลที่ ".$yy." ถึงข้อมูลที่ ".$xx;
printf(" | จากทั้งหมด %d รายการ  ",$total);
printf(" | หน้าที่ %d <br />",$page);
?>


แบบนี้ก็ยัง error อย่เหมือนเดิมครับ

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\Web Project\page_managersurveydetail.php on line 442

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\Web Project\page_managersurveydetail.php on line 458

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\Web Project\page_managersurveydetail.php on line 481


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-21 18:59:47 By : sacool
 


 

No. 14



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

บันทัด 10. ตกสีแดง
where survey_detail.sur_id=surveying.sur_id and survey_detail.tree_id=tree.tree_id and tree.pnt_id=plant.pnt_id and surveying.user_id = user.user_id And ".$Search2." like '%".$Search."%' ");

*************************************
บันทัด 24 ก็แบบเดียวกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-21 20:36:24 By : NewbiePHP
 


 

No. 15



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 14 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-21 20:36:24
รายละเอียดของการตอบ ::
ได้แล้วครับพี่ แต่มีบางฟิวที่หาแล้วขึ้น error คือ tree_id และ sur_id ครับ

survey_detail.sur_id=surveying.sur_id and survey_detail.tree_id=tree.tree_id

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\Web Project\page_managersurveydetail.php on line 423

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\Web Project\page_managersurveydetail.php on line 439

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\Web Project\page_managersurveydetail.php on line 462

สาเหตุมันเป็นเพราะอะไรหรอครับพี่


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-21 22:10:15 By : sacool
 


 

No. 16



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

$Query=mysql_query(....) or die ( mysql_error() )

ใส่สีแดงเข้าไปด้วยจะได้รู้ว่า error อะไร
mysql_num_rows( $Query ) error เพราะ คำสั่งคิวรี่มันไม่ถูกต้อง เลยทำให้ได้ค่า false ออกมา
พอเอาไปใส่ mysql_num_rows( false ) มันก็error argument
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-21 23:11:43 By : NewbiePHP
 


 

No. 17



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 16 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-21 23:11:43
รายละเอียดของการตอบ ::
Column 'sur_id' in where clause is ambiguous
Column 'tree_id' in where clause is ambiguous
มันต้องแก้ยังไงหรอครับ ซึ่งทั้ง2 ตารางผมใช้ชื่อเดียวกันอ่ะครับ ต้องไปแก้ชื่อฟิวมันหรือเปล่าครับ



ประวัติการแก้ไข
2015-11-22 03:11:40
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-21 23:41:13 By : sacool
 


 

No. 18



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ใส่ชื่อตารางให้ field ด้วย ในกรณีที่มีชื่อ field ซ้ำกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-22 06:24:12 By : NewbiePHP
 


 

No. 19



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 18 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-22 06:24:12
รายละเอียดของการตอบ ::
แบบนี้หรือเปล่าครับ
Code (PHP)
survey_detail.sur_id=surveying.sur_id and 
survey_detail.tree_id=tree.tree_id and 
tree.pnt_id=plant.pnt_id and 
surveying.user_id = user.user_id 




ประวัติการแก้ไข
2015-11-22 11:48:41
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-22 11:42:46 By : sacool
 


 

No. 20



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

จริงๆ ไม่ต้องถามก็ได้มั้งครับแบบนี้ เอาไปลองก็รู้ผลแล้วล่ะครับว่าได้ไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-22 12:08:24 By : NewbiePHP
 


 

No. 21



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 20 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-22 12:08:24
รายละเอียดของการตอบ ::
มันไม่ได้ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-22 12:18:16 By : sacool
 


 

No. 22



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ไม่ได้เพราะอะไรล่ะครับ ผมจะรู้ไหมเนี่ย คุณเป็นคนทดลองบอกแค่ไม่ได้
555555
ไม่ได้มีตาทิพย์นะครับ ทดลองแล้วก็สรุปให้รู้ด้วยสิครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-22 15:36:35 By : NewbiePHP
 


 

No. 23



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 22 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-22 15:36:35
รายละเอียดของการตอบ ::
มันขึ้นแบบเดิมครับ
คือ
Column 'tree_id' in where clause is ambiguous
Column 'pnt_id' in where clause is ambiguous
Column 'sur_id' in where clause is ambiguous
Column 'user_id' in where clause is ambiguous
ครับ
Code (PHP)
$Qtotal = mysql_query("SELECT * FROM survey_detail,surveying,tree,plant,user
 where survey_detail.sur_id=surveying.sur_id and 
 survey_detail.tree_id=tree.tree_id and
  tree.pnt_id=plant.pnt_id and 
  surveying.user_id = user.user_id and 
  ".$Search2." like '%".$Search."%'  ")or die ( mysql_error() );




ประวัติการแก้ไข
2015-11-22 16:47:29
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-22 16:46:28 By : sacool
 


 

No. 24



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

มี่ที่เดียวที่น่าจะผิด
$Qtotal = mysql_query($sql="SELECT * FROM survey_detail,surveying,tree,plant
.......
".$Search2." like '%".$Search."%' ")or die ( mysql_error() . "<br>$sql" );

สีแดงรับค่ามาแบบไหน ต้องบอกว่า สร้าง value ไว้แบบไหนในหน้าเสริจ ดีกว่าครับ
เพิ่มสีน้ำเงินเข้าไปด้วยครับ จะได้เห็น statement ที่ทำไว้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-22 20:21:59 By : NewbiePHP
 


 

No. 25



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 24 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-22 20:21:59
รายละเอียดของการตอบ ::

ผมไม่เข้าใจ " สีแดงรับค่ามาแบบไหน ต้องบอกว่า สร้าง value ไว้แบบไหนในหน้าเสริจ " ครับ ก็เลยเอา ฟอร์มที่ส่งค่ามา $search2 มาให้พี่ดูครับ
ผมเลยไม่ได้เปลี่ยนแค่ $search2 ครับ หรือให้ผมลองใส่ค่าตรง ๆ เข้าไป แทน $search2 เช่น $pnt_id ผมก็ลองแล้วครับ
มันออกมาแบบนี้ครับ
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 'like '%%'' at line 3
SELECT * FROM survey_detail,surveying,tree,plant,user where survey_detail.sur_id=surveying.sur_id and survey_detail.tree_id=tree.tree_id and tree.pnt_id=plant.pnt_id and surveying.user_id = user.user_id and like '%%'


Code (PHP)
$Qtotal = mysql_query($sql="SELECT * FROM survey_detail,surveying,tree,plant,user
 where survey_detail.sur_id=surveying.sur_id and survey_detail.tree_id=tree.tree_id and
  tree.pnt_id=plant.pnt_id and surveying.user_id = user.user_id and ".$Search2." like '%".$Search."%'  ")or die ( mysql_error()."<br>$sql" );


Code (PHP)
<form name="form1" method="post" action="?p=manager-surveydetail&show=OK&strSearch=Y">
      <table width="98%" >
        <tr>
          <td width="50%"><div align="right">ค้นหา :
              <select name="Search2" class="inp-form355">
               
              		<option value="sur_detail_id" <? if($Search2=="sur_detail_id"){ ?>selected<? }?>>รหัสการสำรวจ</option>
					<option value="tree_id" <? if($Search2=="tree_id"){ ?>selected<? }?>>รหัสการสำรวจ</option>
                     <option value="sur_id" <? if($Search2=="sur_id"){ ?>selected<? }?>>รหัสทะเบียนสำรวจ</option>
 					
                    <option value="user_id" <? if($Search2=="user_id"){ ?>selected<? }?>>รหัสผู้สำรวจ</option>
                   
                    <option value="sur_time" <? if($Search2=="sur_time"){ ?>selected<? }?>>เวลาสำรวจ</option>
                     <option value="pnt_vernac_name" <? if($Search2=="pnt_vernac_name"){ ?>selected<? }?>>ชื่อพื้นเมือง</option>
                    <option value="sur_locality" <? if($Search2=="sur_locality"){ ?>selected<? }?>>สถานที่สำรวจ</option>
                     <option value="user_name" <? if($Search2=="user_name"){ ?>selected<? }?>>ผู้สำรวจ</option>
                     <option value="pnt_id" <? if($Search2=="pnt_id"){ ?>selected<? }?>>รหัสข้อมูลพืช</option>
                                 <option value="approve_status" <? if($Search2=="approve_status"){ ?>selected<? }?>>สถานะ</option>
              </select>
          </div></td>
          <td width="64%"><input name="Search" type="text" size="20" value="<? echo $Search?>"onFocus="this.value = '';" class="inp-form300" placeholder="Search">
              <input name="submit" type="submit" class="btn" value="Search" >          </td>
        </tr>
        <tr>
          <td><div align="center">
              <input type="radio" name="status" id="status" value="1">
            อนุมัติแล้ว 
            <input type="radio" name="status" id="status" value="2"> 
            ยังไม่อนุมัติ</div></td>
          <td>&nbsp;</td>
        </tr>
      </table>
    </form>

Column 'sur_id' in where clause is ambiguous
SELECT * FROM survey_detail,surveying,tree,plant,user where survey_detail.sur_id=surveying.sur_id and survey_detail.tree_id=tree.tree_id and tree.pnt_id=plant.pnt_id and surveying.user_id = user.user_id and sur_id like '%%'
ผลที่ออกมาครับ



ประวัติการแก้ไข
2015-11-22 22:15:45
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-22 22:10:33 By : sacool
 


 

No. 26



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

<option value="sur_detail_id" <?

ไม่มีชื่อตารางใช่ไหมครับ พอเอาไปใช้ มันก็ไม่มีชื่อตารางเหมือนกัน
ดังนั้นควรใส่ชื่อตารางเข้าไปด้วยครับ
อาจจะใส่ที่คิวรี่เลยก็ได้ถ้า ฟีลด์ทั้งหมดนี้มันมีอยู่ในตารางเดียว
แต่ถ้าหาจากหลายตาราง ก็ใส่ใน value ของ option ไปเลยครับ
value="tablename.sur_detail_id"

ส่วนข้างล่าง ตัวแปรไม่มาด้วย ถึงกลายเป็น %% ถ้ามีตัวแปรควรจะมีอะไรอยู่กลาง %xxx%
user.user_id and like '%%'


ประวัติการแก้ไข
2015-11-22 23:33:30
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-22 23:29:59 By : NewbiePHP
 


 

No. 27



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 26 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-22 23:29:59
รายละเอียดของการตอบ ::
สุดยอดครับ ได้แล้วครับพี่ ขอบคุณมาก ๆ เลยครับ
พี่ครับผมขอถามอีกนิดนึงได้ไหมครับ

ถ้าเกิดว่าผมทำค้นหาสถานะซึ่งในฐานข้อมูลมันเป็น 1 กับ 0
อยากพิมพ์ ค้นหาได้จากคำว่า บันทึกแล้ว กับ ยังไม่บันทึก มันต้องทำยังไงหรอครับ พอมี ตัวอย่างสอนไหมครับ

ยังไงก็ ขอบคุณมาก ๆ เลยนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-22 23:47:50 By : sacool
 


 

No. 28



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

เพิ่่มปุ่มเป็น option อีกตัวไปเลยครับ อย่าต้องให้พิมพ์เลยครับ คนพิมพ์ส่วนมากจะมั่ว
แล้วจะหาคำค้นไม่เจอ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-22 23:55:42 By : NewbiePHP
 


 

No. 29



โพสกระทู้ ( 76 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 28 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-11-22 23:55:42
รายละเอียดของการตอบ ::
ขอบคุณมากครับพี่ +1 ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-23 00:07:45 By : sacool
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่องการ ทำค้นหา php แบบหลายตาราง หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่