 |
ขอคำแนะนำด้วยครับ ต้องการ select ข้อมูลแบบเดียวกันหลายๆครั้งแต่เปลี่ยนเงื่อนไข |
|
 |
|
|
 |
 |
|
ผมต้องการสร้าง select แบบเดิมซ้ำกันหลายๆอัน แต่เปลี่ยน เงื่อนไข where และ นำค่าที่ได้ในตารางโดยดึงตัวแปรแต่ละ select ไปใช้ครับ เช่นเอาตัวแปรวันที่ เป็น test1 test2 ในแต่ละ select ตามเงื่อนไข ครับ
ปัญหาคือ ไม่สามารถใช้ซ้อนกันได้ครับ ใช้ได้แค่อันใดอันหนึ่งเองอะครับ ต้องทำยังไงครับ
Code (PHP)
$strSQL=" SELECT DISTINCT ob.id,
ps.day AS testday2,
FROM ob
LEFT JOIN position ON ob.idposition = position.idposition
LEFT JOIN ps ON ob.id = ps.id
where position.positionlevel_name = 'ผบก.' AND positionname like '%สว%' <-------------ผมต้องการสร้าง select ขึ้นมาอีกแล้วเปลี่ยนเงื่อนไข
group by ob.id
order by id_rank DESC,firstnow ASC,beforerank ASC,ranknow ASC,daybefore ASC,daypolice ASC,birth ASC;
";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$testday2=$result["testday1"];
Code (PHP)
$strSQL=" SELECT DISTINCT ob.id,
ps.day AS testday2,
FROM ob
LEFT JOIN position ON ob.idposition = position.idposition
LEFT JOIN ps ON ob.id = ps.id
where position.positionlevel_name = 'ผบก.' AND positionname like '%ผบฃ%' <-------------ผมต้องการสร้าง select ขึ้นมาอีกแล้วเปลี่ยนเงื่อนไข
group by ob.id
order by id_rank DESC,firstnow ASC,beforerank ASC,ranknow ASC,daybefore ASC,daypolice ASC,birth ASC;
";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$testday2=$result["testday2"];
Tag : PHP, MySQL
|
ประวัติการแก้ไข 2014-07-25 00:47:27 2014-07-25 00:48:27 2014-07-25 00:49:06 2014-07-25 01:20:48 2014-07-25 01:28:47
|
 |
 |
 |
 |
Date :
2014-07-25 00:46:23 |
By :
puldool |
View :
949 |
Reply :
10 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าข้อมูลที่ดึงขึ้นมาส่วนใหญ่ใช้ทั้งหมดให้ทำการคิวรี่ทั้งหมดแล้วเก็บลงอาเรย์ก่อนจะทำให้การทำงานง่ายขึ้นและการประมวลผลน้อยลงด้วยครับส่วนว่าเราจะแยกกล่มข้อมูลอย่างไร ระหว่าง While ให้เราใส่เงื่อนไขในการจัดกลุ่มข้อมูลลงไปครับ
ตย.
Code (PHP)
while ($data_f = mysqli_fetch_array($data_res)) {
if (preg_match("/สว/",$data_f[position])) {
$data_array['sor_wor'][$data_f[Id]] = $data_f;
} else if (preg_match("/ผบช/",$data_f[position]) {
$data_array['por_bor_chor'][$data_f[Id]] = $data_f;
}
}
เวลานำไปใช้ก็ใช้ foreach เอาครับ
ถ้าต้องการแยกกลุ่มมากกว่านั้นก็คิดตรรกะเพิ่มเอาครับ
|
 |
 |
 |
 |
Date :
2014-07-25 09:44:20 |
By :
soghband |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เป็นผมจะทำดังนี้
1.ทำ =>สว , ผบฃ และ อื่นๆที่ต้องการ เป็น ตัวแปรอาเรย์ =>$a[$i]
2.แล้วเอา ตัวแปรอาเรย์ =>$a[$i] ใส่แทน '%สว%' เป็น '%$a[$i]%'
3.แล้วใช้คำสั่ง for ในการ select ค่าที่ต้องการ
4.ได้ ค่าที่ต้องการเป็นอาเรย์
5.ใช้คำสั่ง for นำค่าที่ต้องการ แสดงเป็นตาราง
|
 |
 |
 |
 |
Date :
2014-07-25 10:49:38 |
By :
chai19 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ยังไม่ค่อยเข้าใจครับ รบกวนช่วยดูให้หน่อยครับ
Code (PHP)
$strSQL=" SELECT DISTINCT ob.id,
ps.day
FROM ob
LEFT JOIN position ON ob.idposition = position.idposition
LEFT JOIN ps ON ob.id = ps.id
where position.positionlevel_name = 'ผบก.' AND positionname like '%$a[$i]%' <---ใส่เงื่อนไขตามที่บอกแล้วครับ
group by ob.id
order by id_rank DESC,firstnow ASC,beforerank ASC,ranknow ASC,daybefore ASC,daypolice ASC,birth ASC;
";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult = mysql_fetch_array($objQuery))
{
<td bgcolor="#FFFFFF"><?
DateThai($strDate2 );
$strDate2 = ($objResult["day"]); <----- ในส่วนนี้ผมต้องใส่ข้อมูลยังไงครับ
if($strDate2 == "0000-00-00")
{
echo $strDate2 = "";
}
else
{
echo DateThai($strDate2 );
} ?> </td>
<td bgcolor="#FFFFFF"><?
DateThai($strDate2 );
$strDate2 = ($objResult["day"]); <----- ในส่วนนี้ผมต้องใส่ข้อมูลยังไงครับ
if($strDate2 == "0000-00-00")
{
echo $strDate2 = "";
}
else
{
echo DateThai($strDate2 );
} ?> </td>
?>
<?
mysql_close($objConnect);
?>
|
ประวัติการแก้ไข 2014-07-25 14:42:54 2014-07-25 14:51:17 2014-07-25 14:51:54
 |
 |
 |
 |
Date :
2014-07-25 14:40:50 |
By :
puldool |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รบกวนด้วยครับ ผมลองแก้หลายอย่างแล้ว แต่ยังไม่ได้เลยครับ
ลองใช้ select ซ้อน select เหมืิอนจะไม่ได้ ToT
|
ประวัติการแก้ไข 2014-07-26 23:03:55
 |
 |
 |
 |
Date :
2014-07-26 22:48:31 |
By :
puldool |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ค่า $n บรรทัดที่ 126 ผิด
$n = จำนวนตัวแปรอาเรย์ =>3
for($i=1;$i<=3;$i++){
สอบถามเพิ่ม
* ต้องการหาว่า ผู้บัญชาการ แต่ละท่าน เคยเป็น รอง สว. , สว. และ ผกก. เมื่อไหร่
ผมเข้าใจถูกต้องไหม ?
|
 |
 |
 |
 |
Date :
2014-07-27 20:34:32 |
By :
chai19 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอดูโครงสร้างตาราง ทุกตาราง ที่ใช้ค้นหาข้อมูล
เพื่อจะได้ดึงข้อมูลได้ถูกตัว
เดาจากโค้ด คาดว่ามี 2 ตาราง ที่เกี่ยวข้อง
|
 |
 |
 |
 |
Date :
2014-07-27 23:06:01 |
By :
chai19 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2014-07-27 23:51:03 |
By :
puldool |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
<?
include "connect.php";
mysql_query("set character_set_results=tis620");
mysql_query("set character_set_connection=tis620");
mysql_query("set character_set_client=tis620");
$sql = "CREATE TABLE pss ("
. " `id` INT(4) NOT NULL , "
. " `name` VARCHAR(50) NOT NULL, "
. " `position` VARCHAR(10) NOT NULL, "
. " `day` DATE NOT NULL, "
. " `positionname` VARCHAR(20) NOT NULL, "
. " )"
. " ENGINE = MYISAM;";
$result=mysql_db_query("$dbname",$sql);
$a[1]="รอง สว.";
$a[2]="สว.";
$a[3]="ผกก.";
for($i=1;$i<=3;$i++){
$sql="select * from ps where positionname like '$a[$i]' ";
$result=mysql_db_query("$dbname",$sql);
while ($r=mysql_fetch_array($result)) {
$id=$r[id];
$day=$r[day];
$positionname=$r[positionname];
$sql2="select name from ob where id like '$id' ";
$result2=mysql_db_query("$dbname",$sql2);
while ($r2=mysql_fetch_array($result2)) {
$name=$r2[name];
}
$sql3="select position from position where id like '$id' ";
$result3=mysql_db_query("$dbname",$sql3);
while ($r3=mysql_fetch_array($result3)) {
$position=$r3[position];
}
$sq4="insert into pss values('$id','$name','$position','$day','$positionname')";
mysql_db_query($dbname,$sq4);
}
}
$sql="select * from pss order by id asc ";
$result=mysql_db_query("$dbname",$sql);
echo "<TABLE width='50%' BORDER=1 bgcolor=#FFFFCC>
<TR align='center' bgcolor='#E9E9E9'>
<TD><B>id</B></TD>
<TD><B>name</B></TD>
<TD><B>position</B></TD>
<TD><B>day</B></TD>
<TD><B>positionname</B></TD>
</TR>";
while ($r=mysql_fetch_array($result))
{
$id=$i;
$name=$r[name];
$position=$r[position];
$day=$r[day];
$positionname=$r[positionname];
echo "<TR>
<TD><div align='center'>$id</div></TD>
<TD>$name</TD>
<TD>$position</TD>
<TD>$day</TD>
<TD>$positionname</TD>";
}
echo "</TABLE>";
?>
ทำวันที่เป็นแบบไทย ก็เรียกจาก DateThai
|
 |
 |
 |
 |
Date :
2014-07-28 11:25:08 |
By :
chai19 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|