 |
ขอคำแนะนำเรื่อง Code การค้นหาข้อมูล ที่มีการรับค่าจากฟอร์มมาหลายค่า ทำให้มีเงื่อนไขเยอะมาก. . .อยากให้โค้ดสั้นลง |
|
 |
|
|
 |
 |
|
ผมว่าน่าจะเปลี่ยนจาก แอนด์ เป็น ออร์ นะ && -> ||
ช่วยลดบรรทัดได้
Code (PHP)
if($type!=0 || $province!=0 || $keyword!=""){
$query = mysql_query("SELECT * FROM company WHERE provinceID=$province AND nameComp LIKE'%$keyword%' OR positionW LIKE'%$keyword%' AND showStat=1 ORDER BY dateShow DESC");
}
else{
$query = mysql_query("SELECT * FROM company WHERE provinceID=$province AND idType=$type AND nameComp LIKE'%$keyword%' OR positionW LIKE'%$keyword%' AND showStat=1 ORDER BY dateShow DESC");
}
|
ประวัติการแก้ไข 2010-08-21 00:49:16
 |
 |
 |
 |
Date :
2010-08-21 00:47:42 |
By :
50121680 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผลลัพธ์ ยังไม่ค่อยตรงแหะ
เดียวยังไงผมลองดูเรื่อยๆ ก่อนครับ
ขอบคุณมากครับ
|
ประวัติการแก้ไข 2010-08-21 00:56:07
 |
 |
 |
 |
Date :
2010-08-21 00:55:13 |
By :
ganginwpop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เขียนเป็น function เอาครับ
ต.ย.
Code (PHP)
function select($table,$condition)
{
$sql = "select * from $table $condition";
$dbquery = mysql_query($sql);
$result= mysql_fetch_array($dbquery);
return $result;
}
เวลาเรียกใช็ก็
$rs=select("table_name","เงื่อนไข");
//แสดงผล
$rs[ฟิลด์1];
$rs[ฟิลด์2];
$rs[ฟิลด์3];
................
แล้วอีกอย่างตอน post ไปค้นหา ลองใช้ . เชื่อมต่อเงื่อนไขที่ post มาดูครับ เพราะหากมันอยู่ใน "...."มันก็เป็นรูปของ string ธรรมดา
|
 |
 |
 |
 |
Date :
2010-08-21 00:56:00 |
By :
Manussawin |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
หรือแบบนี้ครับ แต่ลดน้อยลงนิดๆ
Code (PHP)
if ($type==0){
if ($province==0){
if ($keyword==""){
$query = mysql_query("SELECT * FROM company WHERE showStat=1 ORDER BY dateShow DESC");
}else{
$query = mysql_query("SELECT * FROM company WHERE idType=$type AND showStat=1 ORDER BY dateShow DESC");
}
}else{
...
}
}else{
...
}
|
 |
 |
 |
 |
Date :
2010-08-21 01:00:25 |
By :
50121680 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณทั้ง 2 ท่านมากครับ
วิธีของคุณ emboy น่าสนใจทำใช้ได้ดี
แต่ยังไงก็ต้องใช้เงื่อนไข if จำนวนมหาศาลอยู่ดีใช่ไหมครับ
นี่ขนาดแค่ มี input แค่ 3 ตัว เอิ้กๆ
แล้วพอจะมีวิธีเขียนโค้ด แบบอื่นอีกไหมอะครับ
เพราะเท่าที่ผมคิดออกมันเป็นแนว เถือก!! เอา ไม่ค่อยน่าใช้เท่าไร >..<
|
ประวัติการแก้ไข 2010-08-21 01:11:09
 |
 |
 |
 |
Date :
2010-08-21 01:04:03 |
By :
ganginwpop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอาอย่างงี้ครับ
สมมติว่า ตัวเลือกที่เป็น ทุกประเภท ทุกจังหวัด ให้ไม่มีค่า (ว่าง)
แล้วให้ type มีค่าเป็น idType=001,idType=002 อะไรก็ว่าไปเรียงตามของคุณ
แล้วจังหวัดก้ประมาณนี้
provinceID=กรุงเทพ,provinceID=ยะลา ว่าไป
แล้วเวลาใช้ sql ก็ประมาณ SELECT * FROM company WHERE $_REQUEST[type] $_REQUEST[province] showStat=1 ORDER BY dateShow DESC
|
 |
 |
 |
 |
Date :
2010-08-21 01:15:43 |
By :
50121680 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
หลังจากนำเอาองค์ึความรู้ที่ได้รับ จากทั้ง 2 ท่านไปลองทำ . . . ได้ผลลัพธ์ หุหุึ
Code (PHP)
function select($table,$condition)
{
$sql = "select * from $table $condition showStat=1 ORDER BY dateShow DESC";
$q = mysql_query($sql);
return $q;
}
function result(){
$type = "idType=".$_POST['sType'];
$province = "provinceID=".$_POST['sPro'];
$keyword = "(nameComp LIKE'%".$_POST['sText']."%' OR positionW LIKE'%".$_POST['sText']."%')";
if ($_POST['sType']==0){
if ($_POST['sPro']==0){
if ($_POST['sText']=="")
$query = select("company","WHERE");
else
$query = select("company","WHERE $keyword AND");
}
else{
if ($_POST['sText']!="")
$query = select("company","WHERE $province AND $keyword AND");
else
$query = select("company","WHERE $province AND");
}
}
else{
if ($_POST['sPro']!=0){
if ($_POST['sText']=="")
$query = select("company","WHERE $type AND $province AND");
else
$query = select("company","WHERE $type AND $province AND $keyword AND");
}
else{
if ($_POST['sText']!="")
$query = select("company","WHERE $type AND $keyword AND");
else
$query = select("company","WHERE $type AND");
}
}
ถือว่า น่าพอใจครับ . . . แต่ อันนี้แค่ input 3 ตัว ถ้า input เพิ่มเข้ามาอีก โอ้ววว ไม่อยากจะคิด
ยังไงก็ขอบคุณทุกท่านนะครับ
|
 |
 |
 |
 |
Date :
2010-08-21 01:40:45 |
By :
ganginwpop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เจริญพร นะโยมนะ เอิกๆ
|
 |
 |
 |
 |
Date :
2010-08-21 01:46:16 |
By :
Manussawin |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แต่มันน่าจะมีวิธีที่ดีกว่านี้นา ^^
|
 |
 |
 |
 |
Date :
2010-08-21 01:57:17 |
By :
ganginwpop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
<?
$strSQL = "SELECT * FROM table WHERE 1 ";
if($_POST["con1"] != "")
{
$strSQL .= " (AND CON1 = '".$_POST["con1"]."') "
}
if($_POST["con2"] != "")
{
$strSQL .= " (AND CON2 = '".$_POST["con2"]."') "
}
?>
เป็นตังอย่างการใส่เงื่อนไขน่ะครับ
|
 |
 |
 |
 |
Date :
2010-08-21 07:21:00 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พี่วิน นี่เจ้าสาวสวยจังเลยครับ
|
 |
 |
 |
 |
Date :
2010-08-21 12:48:22 |
By :
Manussawin |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 10 เขียนโดย : webmaster เมื่อวันที่ 2010-08-21 07:21:00
Code (PHP)
<?
$strSQL = "SELECT * FROM table WHERE 1 ";
if($_POST["con1"] != "")
{
$strSQL .= " (AND CON1 = '".$_POST["con1"]."') "
}
if($_POST["con2"] != "")
{
$strSQL .= " (AND CON2 = '".$_POST["con2"]."') "
}
?>
เป็นตังอย่างการใส่เงื่อนไขน่ะครับ
เขียนแบบนี้ก็ได้แหะ
โลกนี้ช่างกว้างใหญ่นัก . . . ยอดฝีมือมีทั่วทั้งยุทธจักรมีเยอะเหลือเกิน ฮ่าๆ
ขอบคุณมากครับ
|
ประวัติการแก้ไข 2010-08-22 02:42:27 2010-08-22 02:43:14 2010-08-24 08:49:44
 |
 |
 |
 |
Date :
2010-08-22 02:37:46 |
By :
ganginwpop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้ละครับ >..<
|
ประวัติการแก้ไข 2010-08-24 17:41:18
 |
 |
 |
 |
Date :
2010-08-24 08:49:26 |
By :
ganginwpop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|