php - 如何避免某个 php 部分的多次回显?

标签 php html mysql sql echo

我正忙于创建一个网站,让用户可以举办晚宴并参加陌生人的晚​​宴。我目前正在开发显示某个用户已输入的晚餐的页面。我使用此代码来显示有关晚餐和用户的所有必要详细信息:

$id = $_POST['id'];  

$sql =  "SELECT g.straatnaam, g.huisnummer, g.woonplaats, 
               g.voornaam, g.email, d.tijd, d.datum, d.gerecht, d.capaciteit, d.prijs
        FROM gebruikers g
        INNER JOIN diner d on g.id = d.gebruikersid
        WHERE g.id='$id' ";

mysql_select_db('nassen_database');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
  $adres =  $row['adres'];
  $woonplaats = $row['woonplaats'];
  $voornaam = $row['voornaam'];
  $email = $row['email'];
  $gerecht =  $row['gerecht'];
  $capaciteit = $row['capaciteit'];
  $prijs = $row['prijs'];  
  $tijd = $row['tijd'];
  $datum = $row['datum'];

  echo "<ul>";
    echo "<h3> Eetprofiel van " .$row['voornaam'].  "</h3>";
    echo "<li> Woonplaats: " .$row['woonplaats']. "</li>";
    echo "<li> Adres: " .$row['straatnaam']. " " .$row['huisnummer']. "</li>"; 
    echo "<li> Meld je aan door een mailtje te sturen naar " .$row['email'].  "</li>";

    echo "<h3> Op het menu staat " .$row['gerecht'].  "</h3>";
    echo "<li> Het diner vindt plaats op " .$row['datum']. " om " .$row['tijd']. " uur </li>";
    echo "<li> Capaciteit: " .$row['capaciteit']. " personen</li>";
    echo "<li> Het kost " .$row['prijs']. " credits </li>";
echo "</ul>"; 
}

mysql_close($conn);
  ?>

该代码运行完美,但是当一个用户提交了两份晚餐时,该用户的地址和城市也会显示两次。我只想显示用户的地址、电子邮件和城市一次(在此代码中称为 straat、huisnummer、woonplaats、email 和 voornaam)。

我现在得到这个结果:

I get this result right now

我希望“Eetprofiel van Pram”仅显示一次,并且“Op het Menu Staat...”均显示。我如何更改我的代码才能得到它?

最佳答案

理想情况下,用户数据应存储在不同的表中并单独获取。现在,对于您的特定问题,您可以单独获取用户数据一次并在 while() 循环中忽略它,或者使用如下条件语句:

$foo = 1;
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{

    $adres =    $row['adres'];
    $woonplaats = $row['woonplaats'];
    $voornaam = $row['voornaam'];
    $email = $row['email'];
    $gerecht =  $row['gerecht'];
    $capaciteit = $row['capaciteit'];
    $prijs = $row['prijs']; 
    $tijd = $row['tijd'];
    $datum = $row['datum'];

    if($foo == 1) {
    echo "<ul>";
    echo "<h3> Eetprofiel van " .$row['voornaam'].  "</h3>";
    echo "<li> Woonplaats: " .$row['woonplaats']. "</li>";
    echo "<li> Adres: " .$row['straatnaam']. " " .$row['huisnummer']. "</li>"; 
    echo "<li> Meld je aan door een mailtje te sturen naar " .$row['email'].    "</li>";
    $foo = 0;
    }
    echo "<h3> Op het menu staat " .$row['gerecht'].    "</h3>";
    echo "<li> Het diner vindt plaats op " .$row['datum']. " om " .$row['tijd']. " uur </li>";
    echo "<li> Capaciteit: " .$row['capaciteit']. " personen</li>";
    echo "<li> Het kost " .$row['prijs']. " credits </li>";
    echo "</ul>"; 
}

关于php - 如何避免某个 php 部分的多次回显?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42905293/

相关文章:

php - XAMPP - 如何从主目录执行 PHP 文件?

php - 正则表达式查找除 x,a,n,- 之外的所有字符

javascript - 基于 jQuery 的菜单 - 如何让 slideUp/Down 依次运行,而不是同时运行?

javascript - 通过 Python 将 SQL 查询返回到 JavaScript?

php - Paypal支付前在MySQL中存储订单信息并通过IPN验证

php - .htaccess 在 linux 服务器上不工作

php - mysql查询具有联合和限制的多表

Javascript 表单无法在 Internet Explorer 上按预期提交

php - 在同一行中选择不同的列和其他列

mysql - 有人试过使用 MySQL DataController 与 MSSQL Server 建立联合表吗?