สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network
Moderator: mindphp , ผู้ดูแลกระดาน
VIO
PHP Newbie
โพสต์: 4 ลงทะเบียนเมื่อ: 25/08/2011 10:39 am
โพสต์ที่ยังไม่ได้อ่าน
โดย VIO » 25/08/2011 11:09 am
จากฟอร์มส่งนี้นะคับ
โค้ด: เลือกทั้งหมด
<table border=0 width=70% align='center'><tr>
<form action='report.php' method='post'>
<td align='center'>งานทะเบียนแบบรายเดือน<td align='left'>
<select name='month'>
<option value='00'>ทั้งหมด</option>
<option value='01'>มกราคม</option>
<option value='02'>กุมภาพันธ์</option>
<option value='03'>มีนาคม</option>
<option value='04'>เมษายน</option>
<option value='05'>พฤษภาคม</option>
<option value='06'>มิถุนายน</option>
<option value='07'>กรกฏาคม</option>
<option value='08'>สิงหาคม</option>
<option value='09'>กันยายน</option>
<option value='10'>ตุลาคม</option>
<option value='11'>พฤศจิกายน</option>
<option value='12'>ธันวาคม</option>
</select></td>
<tr><td align='center'>แยกตามผู้ที่รับผิดชอบ<td align='left'>
<select name='id'>
<option value='00'>ทั้งหมด</option>
<option value='01'>A</option>
<option value='02'>B</option>
<option value='03'>C</option>
<option value='04'>D</option>
<option value='05'>E</option>
</select></td> </tr>
<tr><td colspan='2' align='center'></br><input type='submit' name='submit' value='ตกลง' /></td></tr></form>
มาที่ report.php
โค้ด: เลือกทั้งหมด
$month=$_POST['month'];
$id=$_POST['id'];
$sql = "select * from $tblname where month='$month' xor $month='00' and id='$id' xor $id='00' ;
$dbquery = mysql_db_query($dbname,$sql)or die('Query failed: ' . mysql_error());
$num_rows = mysql_num_rows($dbquery);
$num_fields = mysql_num_fields($dbquery);
echo "<tr><td>$month</td><td>$id</td></tr>";
ที่ผมตัดมาเป็นแบบย่อๆไม่มี error อะไร แต่น่าจะผิดตรงที่ month กับ id นะคับ
คืออยากให้ เลือกได้แบบทั้ง month เดียว และก็ month ทั้งหมด หรือ เลือก id คนเดียว หรือเลือก id ทั้งหมดครับ ....อาจจะงงๆ คือผมใช้แบบ and อย่างเดียวโดยไม่ใส่ xor ถ้าข้อมูลในฐานข้อมูลเป็น 00 จะไม่มีข้อมูลโชว์เลย แต่พอใช้ xor จะได้ข้อมูลไม่ตรง ... งมโขงมาหลายวันแล้วช่วยด้วยคับ
touleg
PHP Super Member
โพสต์: 480 ลงทะเบียนเมื่อ: 25/01/2010 11:57 pm
ติดต่อ:
โพสต์ที่ยังไม่ได้อ่าน
โดย touleg » 25/08/2011 11:45 am
ก็เช็คว่า mount และหรือ id ที่รับมามันเป็น 00 หรือป่าวถ้าเป็น 00 ก็ไปทำ select ทั้งหมด ถ้าไม่ใช่ก็ ให้ไปทำ select แบบเลือก
VIO
PHP Newbie
โพสต์: 4 ลงทะเบียนเมื่อ: 25/08/2011 10:39 am
โพสต์ที่ยังไม่ได้อ่าน
โดย VIO » 25/08/2011 3:59 pm
ขอบคุณมากเลยคับ แต่ขอรบกวนอีกนิดนะครับ ตอนนี้ติดปัญหาตรง select ที่เลือกมี 6 อันมี month, id, program ,software, hardware, price, ผมใช้
โค้ด: เลือกทั้งหมด
if($month=="00")
{
$sql = "select * from $tblname where $month='00' ";
}
if($month=="01")
{
$sql = "select * from $tblname where $month='01' ";
}
หรือ
if($id=="00")
{
$sql = "select * from $tblname where $id='00' ";
}
if($id=="01")
{
$sql = "select * from $tblname where $id='01' ";
}
...
..
.
แบบนี้ผมต้องทำทั้ง 6 อันเลยใช่ไหมคับ แล้วถ้าต้องการให้ month = 00 id = 01 ฟังก์ชัน IF ยังใช้ได้ไหมคับเพราะผมลองแล้วมันยังไม่ได้คำตอบที่ถูกเลยครับ
touleg
PHP Super Member
โพสต์: 480 ลงทะเบียนเมื่อ: 25/01/2010 11:57 pm
ติดต่อ:
โพสต์ที่ยังไม่ได้อ่าน
โดย touleg » 25/08/2011 6:10 pm
ดูตามเงื่อนไขครับ ถ้าข้อมุลในฐานข้อมูลไม่มี 00 แล้วใส่ไปแบบนี้
โค้ด: เลือกทั้งหมด
$sql = "select * from $table where mouth='00' and id='01'";
คำตอบที่ได้คือไม่มี ถ้าต้องการที่จะหาตาม id ต้องไม่มี month ที่เป็น 00
โค้ด: เลือกทั้งหมด
$sql = "select * from $tblname where id='01' ";
แบบนี้ถึงจะได้
ก็จะเหมือนกันกับ month ที่ถ้าต้องการหา month ก็ต้องไม่มี id='00' ด้วย
มันจะใส่พร้อมกันไม่ได้ เพราะจะหาข้อมูลไม่เจอ
แต่ถ้ามันมีข้อมูลทั้งคู่ ก็จะต้องใส่เข้าไปทั้งคู่ด้วย ถ้ายิ่งมีหลายค่าที่ต้องหาก็จะเพิ่มเงื่อนไขเข้าไปด้วย เช่นมีทั้ง month และ id ไม่ใช่ 00 ก็จะต้องไปหา month และ id พร้อมกันด้วย
แก้ไขล่าสุดโดย
touleg เมื่อ 26/08/2011 11:53 am, แก้ไขไปแล้ว 1 ครั้ง.
VIO
PHP Newbie
โพสต์: 4 ลงทะเบียนเมื่อ: 25/08/2011 10:39 am
โพสต์ที่ยังไม่ได้อ่าน
โดย VIO » 26/08/2011 8:53 am
ขอบคุณมากๆ เลยคับ ได้แนวคิดหลายอย่าง มากๆ เลย
mindphp
ผู้ดูแลระบบ MindPHP
โพสต์: 41356 ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:
โพสต์ที่ยังไม่ได้อ่าน
โดย mindphp » 26/08/2011 11:50 am
month=="00"
ไม่ต้อง where แล้วก็ได้ครับ
และ $id='01'
น่าจะเขียนผิดอยู่หรือเปล่า
id='01'
หรือเปล่าครับ
VIO
PHP Newbie
โพสต์: 4 ลงทะเบียนเมื่อ: 25/08/2011 10:39 am
โพสต์ที่ยังไม่ได้อ่าน
โดย VIO » 27/08/2011 11:15 am
เสร็จแล้วคับได้ประมาณนี้
โค้ด: เลือกทั้งหมด
if($month<>'00' and $id=='00' and $ids=='00' and $software=='0' and $program=='0' and $hareware=='0')
{
$sql = "select * from $tblname where month = $month";
}
if($month=='00' and $id<>'00' and $ids=='00' and $software=='0' and $program=='0' and $hareware=='0')
{
$sql = "select * from $tblname where id = $id";
}
..
.
แล้วก็ใช้ให้ครบทุกเงื่อนไข คือเงื่อนไขมันค่อนข้างเยอะ ผมยังเขียนไม่เก่งต้องศึกษาอีกมาก
ขอบคุณทุกความคิดเห็นนะครับ
0 ตอบกลับ
4485 แสดง
โพสต์ล่าสุด โดย jataz2
06/01/2016 9:44 am
1 ตอบกลับ
3399 แสดง
โพสต์ล่าสุด โดย mindphp
08/05/2017 2:35 am
0 ตอบกลับ
2178 แสดง
โพสต์ล่าสุด โดย thatsawan
11/03/2016 12:39 am
5 ตอบกลับ
5575 แสดง
โพสต์ล่าสุด โดย AePongsak
20/04/2018 5:05 pm
0 ตอบกลับ
864 แสดง
โพสต์ล่าสุด โดย gainkullan
15/03/2017 3:31 pm
4 ตอบกลับ
5650 แสดง
โพสต์ล่าสุด โดย mindphp
05/10/2014 10:22 pm
1 ตอบกลับ
2355 แสดง
โพสต์ล่าสุด โดย jataz2
19/08/2015 11:26 am
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 106