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

しかし、

ここに画像の説明を入力

ご覧のとおり、旅程を 2 回エコーします。旅程を一度だけエコーするにはどうすればよいですか? ありがとう!

4

3 に答える 3

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 に答える
0

内部結合を使用してみましたか。

ショットを与える:

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

ちなみに、バギオはどこ?

于 2013-02-27T11:35:48.270 に答える
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 が true かどうかを確認します。

于 2013-02-27T11:34:59.523 に答える