Php 选择查询,而循环不会正确返回所有行

Php 选择查询,而循环不会正确返回所有行,php,mysql,select,while-loop,Php,Mysql,Select,While Loop,你能解释一下为什么当我尝试这个查询时,它只返回一半的行吗 例如,如果$records由4个值组成,则它只从DB中获取第1行和第3行 怎么了 $query=mysql_query("SELECT * FROM ".DB_PREF."books WHERE book_id IN ('".$records."')"); while($fetch=mysql_fetch_assoc($query)) {

你能解释一下为什么当我尝试这个查询时,它只返回一半的行吗

例如,如果$records由4个值组成,则它只从DB中获取第1行和第3行

怎么了

                $query=mysql_query("SELECT * FROM ".DB_PREF."books WHERE book_id IN ('".$records."')");
                while($fetch=mysql_fetch_assoc($query))
                {
                    global $book_id, $book_title, $book_description, $book_author_id, $book_author_name, $book_author_surname;
                    $book_id=$fetch['book_id'];
                    $book_title=$fetch['book_title'];
                    $book_description=$fetch['book_description'];
                    $book_author_id=$fetch['book_author_id'];
                    $query=mysql_query("SELECT * FROM ".DB_PREF."profiles WHERE user_id='".$book_author_id."'");
                    $fetch=mysql_fetch_assoc($query);
                    $book_author_name=$fetch['user_name'];
                    $book_author_surname=$fetch['user_surname'];
                    getModule('htmlmodule...');
                }

是否覆盖循环中的$fetch变量?也许可以试试:

$fetch2=mysql_fetch_assoc($query);
或者,更好的做法是在SQL中使用联接:

$query=mysql_query("SELECT * FROM ".DB_PREF."books LEFT JOIN ".DB_PREF."profiles ON book_author_id = user_id WHERE book_id IN ('".$records."')");
然后,只需从单个查询中获取所需的所有内容。

我的WHILE

mysql_select_db($database_lolx, $lolx);
$query_Recordset1 = "SELECT * FROM person";
$Recordset1 = mysql_query($query_Recordset1, $lolx) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
<table border="1">
  <tr>
    <td>id</td>
    <td>emal</td>
  </tr>
  <?php do { ?>
    <tr>
      <td><?php echo $row_Recordset1['id']; ?></td>
      <td><?php echo $row_Recordset1['emal']; ?></td>
    </tr>
    <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>