【问题标题】:Handling three while loops in PHP MYSQL在 PHP MYSQL 中处理三个 while 循环
【发布时间】:2014-02-19 05:24:56
【问题描述】:

我是 PHP 新手,遇到了一个 while 循环。请在此处点灯。

我正在显示一些与书籍、作者和 isbn 编号相关的信息。

有两个表:book 和 author。书名和 ISBN 号来自 book table。作者姓名来自作者表。

这是我可怜的php代码(请不要笑)

<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$result1 = mysql_query("SELECT book_name FROM book where status='1'")  or die(mysql_error());  
$result2 = mysql_query("SELECT FName FROM author")  or die(mysql_error());  
$result3 = mysql_query("SELECT book_isbn_number FROM book where status='1'")  or die(mysql_error());  
?>

<table style="margin-top:40px" border="1" width="100%">
    <tr style="background-color:#909F51">
        <td>Book List</td>

        <?php  while($row1 = mysql_fetch_array( $result1 )) {   ?>
        <td><?php echo $row1['book_name']; ?></td>
        <?php } ?>
    </tr>

<?php  while($row2 = mysql_fetch_array( $result2 )) {   ?>
    <tr>
        <td><?php echo $row2['author_name']; ?></td>

        <?php  while($row3 = mysql_fetch_array( $result3 )) {   ?>
            <td><?php echo $row3['book_isbn_number']; ?></td>
        <?php } ?>
    </tr>
<?php } ?>

</table>

我无法遍历第三个 while 条件。我知道基本的代码结构是错误的。 有人可以帮助我得到结果。

表格:

b_id

书名

isbn_number

状态

作者

a_id

作者姓名

预期输出:

<table width="100%" border="1">
    <tr>
      <td></td>
      <td>Author Name 1</td>
      <td>Author Name 2</td>
    </tr>
    <tr>
      <td>Book Name 1</td>
      <td>ISBN Number 1</td>
      <td>ISBN Number 2</td>
    </tr>
    <tr>
      <td>Book Name 2</td>
      <td>ISBN Number 3</td>
      <td>ISBN Number 4</td>
    </tr>
  </table>

【问题讨论】:

  • 显示您的表格结构和预期输出。我认为你不需要使用三个循环
  • 为什么在 query1 和 query3 中从同一个表 book 中获取不同的列?您可以在单个查询中完成。
  • @MuhammadZeeshan - 请再次检查我的问题
  • @SatishSharma - 请检查我的问题 agani
  • @user3326501 以及您的表 bookauthor 中的数据是什么。我需要它,因为您的预期输出很难理解这种关系。解释更多。所以我可以根据你的需要给你答案。

标签: php mysql loops while-loop


【解决方案1】:

当您选择的列是“book_isbn_number”时,您使用的是$row3['isbn_number']。尝试将该行更改为&lt;td&gt;&lt;?php echo $row3['book_isbn_number']; ?&gt;&lt;/td&gt;。循环本身在使用旧的、已弃用的 mysql_* 函数时应该可以正常工作。

【讨论】:

  • 错字。请再次检查问题,以及我希望获得的预期输出......请
【解决方案2】:
<td><?php echo $row3['isbn_number']; ?></td>

替换为

<td><?php echo $row3['book_isbn_number']; ?></td>

【讨论】:

  • 在您的查询中获取book_isbn_number 并打印isbn_number 所以它不匹配更改它
  • 请再次检查问题。这是我的拼写错误
【解决方案3】:
 $result3 = mysql_query("SELECT book_isbn_number FROM book where status='1'")  or die(mysql_error());  

应该是

$result3 = mysql_query("SELECT isbn_number FROM book where status='1'")  or die(mysql_error());** 

 <td><?php echo $row3['isbn_number']; ?></td>

应该是

<td><?php echo $row3['book_isbn_number']; ?></td>

满足你的需要

【讨论】:

    猜你喜欢
    • 2014-08-09
    • 1970-01-01
    • 2013-05-18
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 2017-06-15
    相关资源
    最近更新 更多