สอบถามโค้ดเรื่องการค้นหา โดยที่ User คนหาจะต้องมีข้อมูลอย่างใดอย่างหนึ่ง เช่น เลขที่เอกสาร , วันที่ , ชื่อ User
สอบถามโค้ดเรื่องการค้นหา โดยที่ User ค้นหาจะต้องมีข้อมูลอย่างใดอย่างหนึ่ง เช่น เลขที่เอกสาร , วันที่ , ชื่อ User , หรือถ้าไม่เลือกเลย ก็ให้โชว์ข้อมูลทั้งหมด
อันนี้เป็นโค้ด ที่นำมาจากพี่ที่เค้าเขียนกันไว้ มาประยุกต์ใช้นะคะ
Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
</head>
<?
include ("connect_db.php");
?>
<body>
<form action="" name="" method="post">
<table>
<tr>
<td>ค้นหาจาก :</td>
<td>วันที่ :
<input name="date1" type="text" size="10"/>
<a href="javascript:displayDatePicker('date')"><img border="0" src="Calendar-icon.jpg" width="20" height="20"></a>
</td>
<td> เลขที่ Memo : </td>
<td><input name="no_memo" type="text" size = "10" id="no_memo"/>
<?
for($n=0;$n<count($no_memo);$n++){}
?>
</td>
<tr>
<td>สาขา : </td>
<td width="0"><select name="branch" id="branch">
<option value="U2" > U2 </option>
<option value="U3" > U3 </option>
<option value="U4" > U4 </option>
</select>
<?
for($b=0;$b<count($branch);$b++){}
?>
</td>
<td> User : </td>
<td ><input name="name_user" type="text" size = "10"/>
<?
for($u=0;$u<count($name_user);$u++){}
?>
</td>
</tr>
<tr>
<td> Method : </td>
<td width="0"><select name="meth1" id="meth1">
<option value="add" > Add </option>
<option value="del" > Delete </option>
<option value="tranfer" > Tranfer </option>
</select>
<?
for($m=0;$m<count($meth1);$m++){}
?>
</td>
<td> Option : </td>
<td width="0"><select name="opt1" id="opt1">
<option value="stk" > Stock </option>
<option value="tranferboi" > Tranfer to Scrap BOI </option>
<option value="tranfernonboi" > Tranfer to Scrap NON-BOI</option>
</select>
<?
for($op=0;$o<count($opt1);$op++){}
?>
</td>
</tr>
<td align="center" colspan="4"><input type="submit" name="b_ss" value="ค้นหา" /></td>
<table cellpadding="1" cellspacing="1" border="0" align="center" width="100%" bgcolor="#000000">
<?
if($date1&&!$date1){
$d_date="AND memo_03='$date1'";
}
if($no_memo&&!$no_memo){
$n_memo="AND memo_01='$no_memo'";
}
if($branch&&!$branch){
$b_branch="AND memo_02='$branch'";
}
if($name_user&&!$name_user){
$n_nameuser="AND memo_04='$name_user'";
}
if($meth1&&!$meth1){
$m_meth="AND memo_06='$meth1'";
}
if($opt1&&!$opt1){
$o_opt1="AND memo_07='$opt1'";
}
$sql="select * from find_memo01 $d_date $n_memo $b_branch $n_nameuser $m_meth $o_opt1";
echo "$sql";
$d=0;
$result = mysql_db_query($dbname,$sql) or die ("Cant connect to database");
While($row=mysql_fetch_array($result)){
$f=$d%2;
?>
<tr class="b" bgcolor="<? if($f==0){?>#FFFFCC<? }else{?>CCFFFF<? }?>">
<td>
<table cellpadding="1" cellspacing="1" border="0" align="center" width="100%">
<tr align="center">
<td width="40%"><b>เลขที่ Memo</b></td>
<td><b>วันที่</b></td>
<td><b>สาขา</b></td>
<td><b>Name User :</b></td>
<td><b>Method</b></td>
<td><b>Option</b></td>
<td><b>Name Admin</b></td>
</tr>
<?
$sql="select memo_01,memo_03,memo_02,memo_04,memo_06,memo_07,memo_05, from find_memo01"; //
$result=mysql_db_query($dbname,$sql) or die ("Can't connect to database ");
While($row=mysql_fetch_array($result)){
?>
<tr align="center">
<td align="left"><?=$row[2];?></td>
<td><?=$row[1];?></td>
<td><?=$row[3];?></td>
<td><?=$row[4];?></td> //
<td><?=$row[5];?></td>
<td> <?=$row[7];?> </td>
</tr>
<?
}
?>
</table> </td>
</tr>
<?
$d++;
}
?>
</table> </td>
</tr>
</table>
</form>
</body>
</html>
Tag : PHP, MySQL
Date :
2015-04-01 19:37:15
By :
kawakwang
View :
775
Reply :
7
ขอถามค่ะ
1.เครื่องหมาย ? ที่อยู่หลัง $n_memo=strlen($no_memo) มันหมายความว่ายังไงคะ
2.พอใส่ where ในบรรทัด
$sql="select * from find_memo01 where $d_date $n_memo $b_branch $n_nameuser $m_meth $o_opt1";
มันก็ยังขึ้น select * from find_memo01 Can't connect to database
พอเอาหา error ใน sql มันขึ้นแบบนี้ค่ะ
#1064 - 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 ''t connect to database' at line 1
ประวัติการแก้ไข 2015-04-02 09:29:56
Date :
2015-04-02 08:59:55
By :
kawakwang
$n_memo=strlen($no_memo) ? "[ช่องว่างเว้นไว้ด้วยนะครับกันลืม]AND memo_01='$no_memo'[ช่องว่าง]" : '';
กำหนด $ตัวแปร เท่ากับ condition ตรวจสอบ ? "ถ้าจริงใช้อันนี้" : "ถ้าไม่จริงใช้อันนี้";
where 1 ครับ
Date :
2015-04-02 10:32:28
By :
Chaidhanan
พอดี ตอนนี้สามารถเรียกข้อมูลจากฐานข้อมูลมาแสดงได้แล้ว แต่ว่ามันยังติดขัดตรงโค้ดนิดหน่อยค่ะ ไม่แน่ใจว่าเกิดจากอะไร
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
</head>
<?
include ("connect_db.php");
?>
<body>
<form action="" name="" method="post">
<table>
<tr>
<td>ค้นหาจาก :</td>
<td>วันที่ :
<input name="date1" type="text" size="10"/>
<a href="javascript:displayDatePicker('date')"><img border="0" src="../../AppServ-Backup-2008-05-11/AppServ/www/Calendar-icon.jpg" width="20" height="20"></a>
</td>
<td> เลขที่ Memo : </td>
<td><input name="no_memo" type="text" size = "10" id="no_memo"/></td>
<tr>
<td>สาขา : </td>
<td width="0"><select name="branch" id="branch">
<option value="U2" > U2 </option>
<option value="U3" > U3 </option>
<option value="U4" > U4 </option>
</select>
</td>
<td> User : </td>
<td ><input name="name_user" type="text" size = "10"/>
</td>
</tr>
<tr>
<td> Method : </td>
<td width="0"><select name="meth1" id="meth1">
<option value="add" > Add </option>
<option value="del" > Delete </option>
<option value="tranfer" > Tranfer </option>
</select></td>
<td> Option : </td>
<td width="0"><select name="opt1" id="opt1">
<option value="stk" > Stock </option>
<option value="tranferboi" > Tranfer to Scrap BOI </option>
<option value="tranfernonboi" > Tranfer to Scrap NON-BOI</option>
</select>
</td>
</tr>
<td align="center" colspan="4"><input type="submit" name="b_ss" value="ค้นหา" /></td>
<table cellpadding="1" cellspacing="1" border="0" align="center" width="100%" bgcolor="#CCCCCC">
<tr>
<td>
<table cellpadding="1" cellspacing="1" border="0"align="center" width="100%">
<tr align="center">
<td><b>เลขที่ Memo</b></td>
<td><b>สาขา</b></td>
<td><b>วันที่</b></td>
<td><b>Name User :</b></td>
<td><b>Name Admin</b></td>
<td><b>Method</b></td>
<td><b>Option</b></td>
<td><b>PDF</b></td>
</tr>
<?
if($no_memo&&!$no_memo){
$n_memo="AND memo_01='$no_memo' ";
//$n_memo=strlen($no_memo) ? " AND memo_01='$no_memo' " : '';
}
if($branch&&!$branch){
$b_branch="AND memo_02='$branch'";
//$b_branch=strlen($branch) ? " AND memo_02='$branch' " : '';
}
if($date1&&!$date1){
$d_date="AND memo_03='$date1'";
//$d_date=strlen($date1) ? " AND memo_03='$date1' " : '';
}
if($name_user&&!$name_user){
$n_nameuser="AND memo_04='$name_user'";
//$n_nameuser=strlen($name_user) ? " AND memo_04='$name_user' " : '';
}
if($name_admin&&!$name_admin){
$n_admin="AND memo_05='$name_admin'";
//$m_meth=strlen($meth1) ? " AND memo_06='$meth1' " : '';
}
if($meth1&&!$meth1){
$m_meth="AND memo_06='$meth1'";
//$m_meth=strlen($meth1) ? " AND memo_06='$meth1' " : '';
}
if($opt1&&!$opt1){
$o_opt1="AND memo_07='$opt1'";
//$o_opt1=strlen($opt1) ? " AND memo_07='$opt1' " : '';
}
if($pdf&&!$pdf){
$p_pdf="AND memo_08='$p_pdf'";
//$o_opt1=strlen($opt1) ? " AND memo_07='$opt1' " : '';
}
//$host = "localhost";
//$user = "root";
//$pass = "1234";
//$dbname = "find_memo";
//$tblname = "find_memo01";
//$dbcon = mysql_connect($host,$user,$pass) or die ("Connec't Database");
//mysql_select_db ($dbname,$dbcon);
$sql="select * from find_memo01 where memo_01 <> '' $n_memo $b_branch $d_date $n_nameuser $n_admin $m_meth $o_opt1 $p_pdf";
echo "$sql";
//echo "==".$dbname;
$result = mysql_db_query($dbname,$sql) or die ("Can't connect to database $dbname");
$d=0;
While($row=mysql_fetch_array($result)){
if ($d%2==0)
{
$bg = "#CCFFFF";
}
else
{
$bg = "#FFFFCC";
}
?>
<tr align="center" bgcolor="<?=$bg;?>">
<td><?=$row[0];?></td>
<td><?=$row[1],2;?></td>
<td><?=$row[2];?></td>
<td><?=$row[3];?></td>
<td><?=$row[4];?></td>
<td><?=$row[5];?></td>
<td><?=$row[6];?></td>
<td><a href="filepdf/<?=$row[7];?>"><?=$row[7];?></a></td>
</tr>
<?
$d++;
}
?>
</table>
</tr>
</table>
</form>
</body>
</html>
ปล.มันจะขึ้น ดังรูป
ปล.1 ใส่ Where 1 ตามที่พี่ Chaidhanan บอกแล้ว มันจะไม่ขึ้นข้อมูลอะไรเลยค่ะ
ปล.2 หา error ใน sql ก็ไม่ขึ้น error อะไรค่ะ
ประวัติการแก้ไข 2015-04-06 15:41:41
Date :
2015-04-06 15:40:34
By :
kawakwang
where memo_01 <> '' อันนี้แทน where 1 ไปแล้วครับ
เพราะตัวแปร condition อื่นq มันมี AND อยู่ด้วย ถ้า where ไม่มี 1 ก็จะเป็น where AND .... ซึ่งมันผิด
เลยต้องใส่ 1 แต่ เมื่อคุณมี memo_01 <> '' ถ้าใส่ 1 มันจะป็น where 1 memo_01<>'' ซื้งก็ผิดอีก
ก็ต้องทำความเข้าใจ การ ต่อ string ให้ดีครับ ว่ามันจะออกมารูปแบบไหน
และผล ที่ได้ ถูกไวยกรณ์ ของ SQL หรือเปล่า
Code (PHP)
if($no_memo&&!$no_memo){ // ตรวจสอบอะไรครับเนี่ย
($no_memo && !$no_memo) ลองดูให้ดีครับ มันไม่มีทางเป็นจริงได้เลยครับ
เหมือนกับการเขียน
( true && !true) มันจะเป็นจริงไปได้อย่างไร
ตัวอยา่งที่ผมทำให้ดู
Code (PHP)
$n_memo=strlen($no_memo) ? "[ช่องว่างเว้นไว้ด้วยนะครับกันลืม]AND memo_01='$no_memo'[ช่องว่าง]" : '';
ประวัติการแก้ไข 2015-04-06 16:11:13
Date :
2015-04-06 16:09:21
By :
Chaidhanan
กลับมามีคำถามอีกแล้วค่ะ หนูล่ะกลุ้มใจกับตัวเองจริงๆ
ติดปัญหาเรื่องค้นหาเหมือนเดิม แต่ว่าตอนนี้สามารถ ค้นหาจาก สาขา ได้เพียงอย่างเดียว
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
</head>
<?
include ("connect_db.php");
?>
<body>
<form action="" name="" method="post">
<table>
<tr>
<td>ค้นหาจาก :</td>
<td>วันที่ :
<input name="date1" type="text" size="10"/>
<a href="javascript:displayDatePicker('date')"><img border="0" src="Calendar-icon.jpg" width="20" height="20"></a>
</td>
<td> เลขที่ Memo : </td>
<td><input name="no_memo" type="text" size = "10" id="no_memo" "<?=$_GET['no_memo']?>"/></td>
<tr>
<td>สาขา : </td>
<td width="0"><select name="branch" id="branch">
<option value="U2" <?=($_GET['branch']=="U2")?" selected":""?> > U2 </option>
<option value="U3" <?=($_GET['branch']=="U3")?" selected":""?>> U3 </option>
<option value="U4" <?=($_GET['branch']=="U4")?" selected":""?>> U4 </option>
</select>
</td>
<td> User : </td>
<td ><input name="name_user" type="text" size = "10" id="name_user" "<?=$_GET['name_user']?>"/>
</td>
</tr>
<tr>
<td> Method : </td>
<td width="0"><select name="meth1" id="meth1" >
<option value="add" <?=($_GET['meth1']=="add")?" selected":""?> > Add </option>
<option value="del" <?=($_GET['meth1']=="del")?" selected":""?>> Delete </option>
<option value="tranfer" <?=($_GET['meth1']=="tranfer")?" selected":""?>> Tranfer </option>
</select></td>
<td> Option : </td>
<td width="0"><select name="opt1" id="opt1">
<option value="stk" <?=($_GET['opt1']=="stk")?" selected":""?>> Stock </option>
<option value="tranferboi" <?=($_GET['opt1']=="tranferboi")?" selected":""?>> Tranfer to Scrap BOI </option>
<option value="tranfernonboi" <?=($_GET['opt1']=="tranfernonboi")?" selected":""?>> Tranfer to Scrap NON-BOI</option>
</select>
</td>
</tr>
<td align="center" colspan="4"><input type="submit" name="b_ss" value="ค้นหา" /></td>
<table cellpadding="1" cellspacing="1" border="0" align="center" width="100%" bgcolor="#CCCCCC">
<tr>
<td>
<table cellpadding="1" cellspacing="1" border="0"align="center" width="100%">
<tr align="center">
<td><b>เลขที่ Memo</b></td>
<td><b>สาขา</b></td>
<td><b>วันที่</b></td>
<td><b>Name User :</b></td>
<td><b>Name Admin</b></td>
<td><b>Method</b></td>
<td><b>Option</b></td>
<td><b>PDF</b></td>
</tr>
<?
//if(isset($_POST['no_memo']) && trim($_POST['no_memo'])!=""){ // function trim trim คือ ทำการตัดช่องว่าง ของหน้าและหลังสตริงออกไป
//$n_nomemo.=" AND memo_01 LIKE '%".trim($_GET['no_memo'])."%' ";
//}
//if(isset($_POST['branch']) && trim($_POST['branch'])!=""){
//$b_branch.=" AND memo_02 LIKE '%".trim($_GET['branch'])."%' ";
//}
//if(isset($_POST['date1']) && trim($_POST['date1'])!=""){
//$d_date1.=" AND memo_03 LIKE '%".trim($_GET['date1'])."%' ";
//}
//if(isset($_POST['name_user']) && trim($_POST['name_user'])!=""){
//$n_nameuser.=" AND memo_04 LIKE '%".trim($_GET['name_user'])."%' ";
//}
//if(isset($_POST['name_admin']) && trim($_POST['name_admin'])!=""){
//$sql_more.=" AND memo_05='".trim($_POST['name_admin'])."' ";
//}
//if(isset($_POST['meth1']) && trim($_POST['meth1'])!=""){
//$m_method.=" AND memo_06 LIKE '%".trim($_GET['meth1'])."%' ";
//}
//if(isset($_POST['opt1']) && trim($_POST['opt1'])!=""){
//$o_option.=" AND find_memo LIKE '%".trim($_GET['opt1'])."%' ";
//}
//if(isset($_POST['p_pdf']) && trim($_POST['p_pdf'])!=""){
//$p_pdf1.=" AND memo_07 LIKE '%".trim($_GET['p_pdf'])."%' ";
//}
// if($no_memo&&!$no_memo){
// //$n_memo="AND memo_01='$no_memo' ";
$n_memo=strlen($no_memo) ? " AND memo_01='$no_memo' " : '';
// }
// if($branch&&!$branch){
// //$b_branch="AND memo_02='$branch'";
$b_branch=strlen($branch) ? " AND memo_02='$branch' " : '';
// }
// if($date1&&!$date1){
// //$d_date="AND memo_03='$date1'";
$d_date=strlen($date1) ? " AND memo_03='$date1' " : '';
// }
// if($name_user&&!$name_user){
// //$n_nameuser="AND memo_04='$name_user'";
$n_nameuser=strlen($name_user) ? " AND memo_04='$name_user' " : '';
// }
// if($name_admin&&!$name_admin){
// //$n_admin="AND memo_05='$name_admin'";
$n_nameadmin=strlen($name_admin) ? " AND memo_05='$name_admin' " : '';
// }
// if($meth1&&!$meth1){
// //$m_meth="AND memo_06='$meth1'";
$m_meth=strlen($meth1) ? " AND memo_06='$meth1' " : '';
// }
// if($opt1&&!$opt1){
// //$o_opt1="AND memo_07='$opt1'";
$o_opt1=strlen($opt1) ? " AND memo_07='$opt1' " : '';
// }
// if($pdf&&!$pdf){
// //$p_pdf="AND memo_08='$p_pdf'";
$p_pdf1=strlen($pdf) ? " AND memo_08='$pdf' " : '';
// }
//$host = "localhost";
//$user = "root";
//$pass = "1234";
//$dbname = "find_memo";
//$tblname = "find_memo01";
//$dbcon = mysql_connect($host,$user,$pass) or die ("Connec't Database");
//mysql_select_db ($dbname,$dbcon);
// $sql="select * from find_memo01 where memo_02 <> '' $n_memo $b_branch $d_date $n_nameuser $n_admin $m_meth $o_opt1 $p_pdf";
//if(isset($_POST['name_admin']) && trim($_POST['name_admin'])!=""){
//$sql_more.=" AND memo_05='".trim($_POST['name_admin'])."' ";
//echo "==".$dbname;
$sql="SELECT * FROM find_memo01 WHERE 1 $n_nomemo $b_branch $d_date1 $n_nameuser $n_nameadmin $m_method $o_option $p_pdf1";
echo "$sql";
$result = mysql_db_query($dbname,$sql) or die ("Can't connect to database");
$d=0;
While($row=mysql_fetch_array($result)){
if ($d%2==0)
{
$bg = "#CCFFFF";
}
else
{
$bg = "#FFFFCC";
}
?>
<tr align="center" bgcolor="<?=$bg;?>">
<td><?=$row[0];?></td>
<td><?=$row[1];?></td>
<td><?=$row[2];?></td>
<td><?=$row[3];?></td>
<td><?=$row[4];?></td>
<td><?=$row[5];?></td>
<td><?=$row[6];?></td>
<td><a href="filepdf/<?=$row[7];?>"><?=$row[7];?></a></td>
</tr>
<?
$d++;
}
?>
</table>
</tr>
</table>
</form>
</body>
</html>
ประวัติการแก้ไข 2015-04-29 13:19:48
Date :
2015-04-29 11:42:56
By :
kawakwang
<input name="no_memo" type="text" size = "10" id="no_memo" "<?=$_GET['no_memo']?>" />
สีแดงคือ value แต่ไม่มี ชื่อ attribute รองรับ
แก้เป็น
<input name="no_memo" type="text" size = "10" id="no_memo" value="<?=$_GET['no_memo']?>" />
ตรวจเช็คอันอื่นด้วยนะครับ คล้ายๆ กัน
Date :
2015-04-29 15:58:05
By :
Chaidhanan
Load balance : Server 02