MySQL在query2的结果中查找查询结果

时间:2013-02-27 11:29:02

标签: php mysql checkbox

我有一个表行程,保存所有行程。然后,我将行程表中的所有数据提取到一个取决于$_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>";

        }
?>

然后,我有另一张表,其中保存了以前选择的行程。我们称之为位置表。我想在那里选择所有数据,在我上一次查询中找到它。如果找到,将自动检查该复选框。

例如,我从行程表中获得了这些数据:

enter image description here

然后我从位置表中获得这些数据:

enter image description here

位置表中的值应选中。这意味着复选框数组上的Cebu - BoholBohol - 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'];
        }
    }
    } 

但是,

enter image description here

如你所见,它两次回应了行程。我怎样才能回复一次行程?谢谢!

3 个答案:

答案 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'];
            }

    }