เรียนผู้รู้พอดีขอคำแนะนำด้วยครับ ผมอยากจะทำ ฟอร์มค้นหา โดยคนหาจากชื่อ นามสกุล เดือน ปี รบกวนด้วยนะครับผม
ผมว่าลองเขียนที่ละอย่างก่อนดีไหม ค้นหา วัน ก็ เอาแค่วันไปก่อน
พอทำวันได้ค่อยประยุกต์เขียน ค้นหา เดือน ปี ต่อไป มือใหม่อย่าทำเยอะ มันจะงง
ผมเห็นโค๊ดแล้วผมยังก็งงครับ 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
Load balance : Server 01