0

我有一个表格行程,所有行程都保存在其中。然后,我根据$_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 - 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'];
        }
    }
    } 

但,

在此处输入图像描述

如您所见,它与行程重复了两次。我怎样才能只回显一次行程?谢谢!

4

3 回答 3

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 代码中的 selected 是否为真。

于 2013-02-27T11:34:59.523 回答
0

您是否尝试过使用Inner Join

试一试:

SELECT a.location, a.btime FROM table1 a 
INNER JOIN table2 b ON a.location = b.location

顺便问一下,碧瑶在哪里?

于 2013-02-27T11:35:48.270 回答
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'];
            }

    }
于 2013-02-28T06:32:28.703 回答