我有一个表行程,保存所有行程。然后,我将行程表中的所有数据提取到一个取决于$_SESSION
值的复选框数组中。
<?php
session_start();
require("aacfs.php");
echo"<div class='box' style='display:inline-block;' >
<table width='800'><tr><td>
<table width=100 align=left class='hovertable' style='display:inline-block;'><tr><th align=center bgcolor=silver><font face=consolas>Choose Itinerary</font></th></tr>
<tr>
<td></br>
<form method=post>";
$result=mysql_query("select * from itinerary where aircraft = '$_SESSION[rtyp]' group by location");
$y=mysql_affected_rows();
for($i=0;$i<$y;$i++)
{$row=mysql_fetch_array($result);
$pr=$row['icode'];
$n=$row['location'];
$l=$row['btime'];
echo"<table border=1 align=center width=250>
<tr><td width=15>
<input type='checkbox' value='$n -> $l'>
</td><td>$n</td><td width=5>$l</td></tr>
</table>";
}
?>
然后,我有另一张表,其中保存了以前选择的行程。我们称之为位置表。我想在那里选择所有数据,在我上一次查询中找到它。如果找到,将自动检查该复选框。
例如,我从行程表中获得了这些数据:
然后我从位置表中获得这些数据:
位置表中的值应选中。这意味着复选框数组上的Cebu - Bohol
和Bohol - Cebu
值应选中。我只是不知道如何使用查询。请帮我。感谢。
编辑:我可以使用此代码执行我想要的操作,
$result=mysql_query("select * from itinerary where aircraft = '$_SESSION[rtyp]' group by location");
while($row=mysql_fetch_array($result))
{
$pr=$row['icode'];
$n=$row['location'];
$l=$row['btime'];
$res=mysql_query("select * from location where reservno = '$_SESSION[rno]'") or die(mysql_error());
while($row1=mysql_fetch_array($res))
{
$loc=$row1['location'];
if($n==$loc)
{
echo"<table border=1 align=center width=250>
<tr><td width=15>
<input type='checkbox' value='$n -> $l' checked='yes'>
</td><td>$n</td><td width=5>$l</td></tr>
</table>";
$t=$_POST['prod'];
}
elseif($n!=$loc)
{
echo"<table border=1 align=center width=250>
<tr><td width=15>
<input type='checkbox' value='$n -> $l'>
</td><td>$n</td><td width=5>$l</td></tr>
</table>";
$t=$_POST['prod'];
}
}
}
但是,
如你所见,它两次回应了行程。我怎样才能回复一次行程?谢谢!
答案 0 :(得分:0)
select i.*, l.location is not null as selected
from
itinerary i
left join
location l on i.location = l.location
where aircraft = '$_SESSION[rtyp]'
group by location
现在检查PHP代码中是否为true。
答案 1 :(得分:0)
您是否尝试过使用Inner Join。
射击:
SELECT a.location, a.btime FROM table1 a
INNER JOIN table2 b ON a.location = b.location
顺便问一下,碧瑶在哪里?
答案 2 :(得分:0)
使用此代码实现:
$result=mysql_query("select * from itinerary where aircraft = '$_SESSION[rtyp]' group by location");
while($row=mysql_fetch_array($result))
{
$pr=$row['icode'];
$n=$row['location'];
$l=$row['btime'];
$res=mysql_query("select * from location where reservno = '$_SESSION[rno]'") or die(mysql_error());
while($row1=mysql_fetch_array($res))
{
$loc=$row1['location'];
if($n==$loc){$ctr="true"; break;}
else{$ctr="false";}
}
if($ctr=="true"){
echo"<table border=1 align=center width=250>
<tr><td width=15>
<input type='checkbox' value='$n -> $l' checked='yes'>
</td><td>$n</td><td width=5>$l</td></tr>
</table>";
$t=$_POST['prod'];
}
else
{
echo"<table border=1 align=center width=250>
<tr><td width=15>
<input type='checkbox' value='$n -> $l'>
</td><td>$n</td><td width=5>$l</td></tr>
</table>";
$t=$_POST['prod'];
}
}