0

現在、サイトの管理者側を微調整しています。サイト管理者はフライト番号を入力でき、データベースはフライトに搭乗しているすべての人の名前を取得します。ただし、現時点では、私の結果は次のようになっています。

The following people are on this flight Joe BloggsThe following people are on this flight Gareth RobertsThe following people are on this flight Joe BloggsThe following people are on this flight Gareth RobertsThe following people are on this flight Joe BloggsThe following people are on this flight Gareth RobertsThe following people are on this flight Joe BloggsThe following people are on this flight Gareth RobertsThe following people are on this flight Joe BloggsThe following people are on this flight Gareth RobertsThe following people are on this flight Joe Bloggs

あなたはアイデアを得る...明らかにDPAの理由で作られた名前:)

たとえば、次のように言うにはどうすればよいですか。

フライト番号 2021 の乗客は次のとおりです。

  • 名前を付ける
  • 名前 2
  • 名前 3

これが私のコードです。どんなアドバイスも大歓迎です!

    <? 
     include("logon/include/session.php");
                $loggedinuser = $session->username;
    $passengerNo = $_POST['enteredPassNo'];
       $theflightno = $_POST['enteredflightNo'];
            $query1 = mysql_query("SELECT p.surname, p.forename,   p.passNo FROM PASSENGER p WHERE p.passNo = '$passengerNo'");
while($row = mysql_fetch_array($query1))
{
    echo "Welcome to the site"  . " " . $row['forename'] ." ";
        }
        echo mysql_error();
$query2 = mysql_query("SELECT    p.surname, p.forename, p.passNo, p.flightNo FROM PASSENGER p, FLIGHT_INFO f WHERE     p.flightNo = '$theflightno'");
while($row = mysql_fetch_array($query2))
{
    echo "The following people are on this flight" . "</ br> ";
    echo $row['forename'] ." " . $row['surname'];
    echo "</ br>";
        echo mysql_error();
        }
    echo mysql_error();
       ?> 

より焦点を当てているのは query2 です。query1 はいくつかのテストに実際に使用されています。明確にするために、 $passengerNo と $theflightNo に保存されている値は、フォームから投稿された後に正しく割り当てられています。

どうもありがとう、

トム

編集:フォーマットに関する素晴らしいアドバイスですが、それでもそのまま印刷されます:-

次の人がこのフライトに搭乗しています

  • ガレス・ロバーツ
  • ジョー・ブロッグス
  • ガレス・ロバーツ
  • ジョー・ブロッグス
  • ガレス・ロバーツ
  • ジョー・ブロッグス

印刷ではなく、

次の人がこのフライトに乗っています:-

  • ガレス・ロバーツ
  • ジョー・ブロッグス

一度だけなど:)

4

3 に答える 3

1

あなたもテキストをループしています。それで

echo "Passenger's on flight number 2021 are:";
echo '</ br>';
echo '<ul>';
while($row = mysql_fetch_array($query2))
{
  echo '<li>';
  echo $row['forename'] ." " . $row['surname'];
  echo '</li>';
}
echo '</ul>';
于 2012-04-20T15:27:27.927 に答える
1

$query2この後のセグメントを次のように変更します。

$query2 = mysql_query("SELECT CONCAT(p.surname, p.forename) as name, p.passNo, 
         p.flightNo FROM PASSENGER p WHERE p.flightNo = '$theflightno' 
         GROUP BY name");
echo "Passengers on flight number {$theflightno} are:" . "<br /> <ul>";
while($row = mysql_fetch_array($query2)) {
  echo "<li>" . $row['name'] . "</li>";
  echo "</ br>";
}
echo "</ul>";

編集

私が行った基本的な編集は次のとおりです。

  • 名前が単一の文字列として返されるように、関数が追加されましたCONCAT(姓/姓の値が繰り返される場合)。
  • クエリを変更して、GROUP BY句を含めます。そのため、繰り返される名前 (forname+surname) は 1 回だけ表示されます。
于 2012-04-20T15:23:09.173 に答える
1
echo "The following people are on flight " . $row['flightNo'] . "</ br> ";    
echo "<ul>";
while($row = mysql_fetch_array($query2))

{

echo "<li>" . $row['forename'] ." " . $row['surname'] . "</li>";

    }
 echo "</ul>";
于 2012-04-20T15:23:13.477 に答える