 |
เรียนผู้รู้พอดีขอคำแนะนำด้วยครับ ผมอยากจะทำ ฟอร์มค้นหา โดยคนหาจากชื่อ นามสกุล เดือน ปี รบกวนด้วยนะครับผม |
|
 |
|
|
 |
 |
|
ผมว่าลองเขียนที่ละอย่างก่อนดีไหม ค้นหา วัน ก็ เอาแค่วันไปก่อน
พอทำวันได้ค่อยประยุกต์เขียน ค้นหา เดือน ปี ต่อไป มือใหม่อย่าทำเยอะ มันจะงง
ผมเห็นโค๊ดแล้วผมยังก็งงครับ 55555 จับปลายชนต้นไม่ถูกเลยครับ
จุดเริ่มต้นสำหรับการเขียนโปรแกรม PHP ผสม HTML ให้เขียน PHP อยู่ต้นโปรแกรม
ทำการ ตรวจสอบคัดสรรข้อมูลให้เสร้จ แล้วจึงแสดง ในส่วนของ HTML
เช่น
Code (PHP)
<?php
include('include_dbconnect.php');
if(isset($_POST['submit'])){
do posting
$strhtml="document 1";
}else{
do something;
$strhtml="document 2";
}
?><html>
<body>
<?=$strhtml?>
</body>
</html>
|
 |
 |
 |
 |
Date :
2014-06-18 19:33:51 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอนนี้ผมทำได้แค่นี้อะครับ ไม่รู้จะไปต่ออย่างไรรบกวนผู้รู้แนะแนวทางด้วยครับ
<?
include "config/config.php";
include "config/fucntion.php";
?>
<?
$dateToday = date('Y-m-d');
$timetoday = date("H:i:s", mktime( date("H")-1, date("i")));
$tm=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");
$tm_no=array("01","02","03","04","05","06","07","08","09","10","11","12");
?>
<center>
<form name="form2" id="form2" action="" method="post" enctype="multipart/form-data">
<b>เดือน :</b>
<select id="monthselect" name="monthselect" style="width:40mm;font-family:Angsana New;font-size: 15pt;" onchange="this.form.submit();">
<option value=''>เลือกเดือนที่ต้องการ</option>
<?
for($j=0;$j<12;$j++){
$selected=$tm_no[$j]==$_POST[monthselect] ? "selected=\"selected\"" : "";
print("<option value=\"".$tm_no[$j]."\" ".$selected.">".$tm[$j]."</option>");
}
?>
</select>
</form>
<tr>
</tr>
</center>
หน้าที่แสดง

|
 |
 |
 |
 |
Date :
2014-06-19 10:28:15 |
By :
nankittiphat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมทำต่อมาได้แค่นี้ ครับ ไปต่อไม่ถูก ท่านใดพอจะแนะแนวทางได้บ้างครับ
<?
include "config/config.php";
include "config/fucntion.php";
mysql_select_db($db) or die ("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
?>
<?
$dateToday = date('Y-m-d');
$tm=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");
$tm_no=array("01","02","03","04","05","06","07","08","09","10","11","12");
?>
<center>
<form name="frmSearch" method="post" action="">
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_POST["txtKeyword"];?>">
<b>เดือน :</b>
<!--select id="monthselect" name="monthselect" style="width:40mm;font-family:Angsana New;font-size: 15pt;" onchange="this.form.submit();">-->
<select id="monthselect" name="monthselect" style="width:40mm;font-family:Angsana New;font-size: 15pt;" >
<option value=''>เลือกเดือนที่ต้องการ</option>
<?
for($j=0;$j<12;$j++){
$selected=$tm_no[$j]==$_POST[monthselect] ? "selected=\"selected\"" : "";
print("<option value=\"".$tm_no[$j]."\" ".$selected.">".$tm[$j]."</option>");
}
?>
</select>
<input type="submit" name="Search" value="Search">
<center>
<table border ="1" width="100%">
<tr>
<td align="center">รหัส</td>
<td align="center" >ชื่อ</td>
<td align="center" >นามสกุล</td>
<td align="center" >วัน/เดือน/ปี เกิด</td>
<td align="center" >หมายเหตุ</td>
</tr>
</table>
<?
if(!empty($_POST[txtKeyword]) or !empty($_POST[monthselect])){
$sql = "SELECT * FROM test_n WHERE (test_n_id LIKE '%".$_POST["txtKeyword"]."%' or test_n_first_name LIKE '%".$_POST["txtKeyword"]."%' or test_n_last_name LIKE '%".$_POST["txtKeyword"]."%')or MONTH(test_n_date)='".$_POST[monthselect]."'";
$result = mysql_query($sql);
?>
<?php while($row= mysql_fetch_array($result)) {
?>
<table border ="1" width="100%">
<tr>
<td><?php echo $row['test_n_id'] ?></td>
<td><?php echo $row['test_n_first_name'] ?></td>
<td><?php echo $row['test_n_last_name'] ?></td>
<td><?php echo DateThai ($row['test_n_date'] )?></td>
<td><?php echo $row['test_n_note'] ?></td>
</tr>
<?php }
?>
</table>
<?
}
?>
</center>
</form>
</center>
|
 |
 |
 |
 |
Date :
2014-06-19 14:41:21 |
By :
nankittiphat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ปัญหาคืออะไรครับตอนนี้ ปัญหาคือคิวรี่ผลลัพธ์ออกมาไม่ได้ไช่ไหม
อันดับแรก --> เช็คค่าตัวแปรว่ามาครบมาถูกต้องรึเปล่า โดย แสดงผลมาออกมาตรงๆก่อน
** ถ้าออกมาถูกต้องค่อยมาทำสเต็บต่อไป ถ้าไม่ออกถูกต้อง ต้องไปทำให้มันออกก่อนถึงจะไปต่อได้
Code (PHP)
<?
include "config/config.php";
include "config/fucntion.php";
mysql_select_db($db) or die ("ไม่สามารถเชื่อมต่อฐานข้อมูลได้");
?>
<?
$dateToday = date('Y-m-d');
$tm=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");
$tm_no=array("01","02","03","04","05","06","07","08","09","10","11","12");
?>
<center>
<form name="frmSearch" method="post" action="">
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_POST["txtKeyword"];?>">
<b>เดือน :</b>
<!--select id="monthselect" name="monthselect" style="width:40mm;font-family:Angsana New;font-size: 15pt;" onchange="this.form.submit();">-->
<select id="monthselect" name="monthselect" style="width:40mm;font-family:Angsana New;font-size: 15pt;" >
<option value=''>เลือกเดือนที่ต้องการ</option>
<?
for($j=0;$j<12;$j++){
$selected=$tm_no[$j]==$_POST[monthselect] ? "selected=\"selected\"" : "";
print("<option value=\"".$tm_no[$j]."\" ".$selected.">".$tm[$j]."</option>");
}
?>
</select>
<input type="submit" name="Search" value="Search">
<center>
<table border ="1" width="100%">
<tr>
<td align="center">รหัส</td>
<td align="center" >ชื่อ</td>
<td align="center" >นามสกุล</td>
<td align="center" >วัน/เดือน/ปี เกิด</td>
<td align="center" >หมายเหตุ</td>
</tr>
</table>
<?
//ตัดส่วนที่ไม่เกี่ยวข้องออกไปก่อน เช็คพารามิเตอร์ก่อนว่ามาครบรึเปล่า
if(!empty($_POST[txtKeyword]) or !empty($_POST[monthselect])){
echo $_POST[txtKeyword];
echo $_POST[monthselect];
}
?>
</center>
</form>
</center>
|
 |
 |
 |
 |
Date :
2014-06-19 14:57:07 |
By :
meannerss |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ต่อจาก NO.5 ถ้าข้างบนรับค่ามาถูกต้องแล้วให้ค่อยๆใส่ไปทีละคำสั่งใน $sql
เอาไปเท่าีน้ก่อน แล้วเช็คว่าถูกไหม ถ้าถูกค่อยต่อเติมไปเรื่อยๆทีละตัว ไม่ถูกตรงไหนก็ให้หยุด และวิเคราะห์ว่ามันผิดยังไง
$sql = "SELECT * FROM test_n WHERE test_n_id LIKE '%".$_POST["txtKeyword"]."%' ";
ด้านบนทดสอบ ลองกรอกค่าของ test_n_id เข้าไปซักตัวแล้วรันดู ถ้าถูกก็ค่อยใส่ OR และไปตัวตัวไป เช็คไปเรื่อยๆจนจบ
|
ประวัติการแก้ไข 2014-06-19 15:04:39
 |
 |
 |
 |
Date :
2014-06-19 15:02:20 |
By :
meannerss |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับผม
|
 |
 |
 |
 |
Date :
2014-06-20 08:11:53 |
By :
nankittiphat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอนนี้ติดปรัญหาที่ว่า เมื่อ ค้นหาจาก รหัส ชื่อ นามสกุล คนหาได้ไม่มีการ error คับ
แต่พอเลือกเดือน ที่ต้องการ จะเลือกเดือนไหน ระบบselect ข้อมูลมาทุกตัวเลยครับ
ผมควรไปต่อยังงัยดีครับ
|
 |
 |
 |
 |
Date :
2014-06-20 08:14:58 |
By :
nankittiphat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอคำสั่ง SQL ก่อนครับ เลือกเดือนต้องเขียนต้องเขียนคำสั่ง SQL ใส่ตัวแปรไว้ก่อนนะ เพราะถ้าบางทีไม่เลือกจะค้นหา all มันต้องไม่มีส่วนนี้ และเชื่อมด้วย AND ครับไม่ไช่ OR
|
 |
 |
 |
 |
Date :
2014-06-20 15:00:48 |
By :
meannerss |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|