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 号航班上的乘客是:

  • 命名一个
  • 命名两个
  • 命名三

这是我的代码,我欢迎任何建议!

    <? 
     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

将之后的段更改为$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子句。这样重复的名称(姓名+姓氏)只会出现一次。
于 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 回答
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 回答