gpt4 book ai didi

PHP mysql_fetch_array 不返回所有行 - 总是忽略一行

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:02 24 4
gpt4 key购买 nike

我正在运行一个相当直接的 mysql 请求并将结果返回到一个表中。数据库中有三条记录,查询是从两个表中提取的。结果,我得到了三个记录的计数(与 mysql_num_rows 相呼应),但表中只显示了两个。在数组结果上使用 print_r 命令仅显示一个特定记录 - 其他记录在 print-r 中显示。我向数据库添加了另一条记录,现在显示了三个记录 - 与以前相同的记录不显示和是 print_r 命令中的唯一记录。这是相关代码:

<td id="page1"> 
<?php
$limit = 15; // Set limit to show for pagination
$page = $_GET['page']; // get page number from submit

if($page)
$start = ($page - 1) * $limit; // first item to display on this page
else
$start = 0; // if no page var is given, set start to 0

$query = "SELECT PartyMstr.PartyMstrID, UserName, FirstName, LastName, XrefPartyRoleID
FROM PartyMstrRole, PartyMstr
WHERE PartyMstr.PartyMstrID = PartyMstrRole.PartyMstrID &&
PartyMstrRole.XrefPartyRoleID = 1
ORDER BY LastName, FirstName ASC
LIMIT $start, $limit
";

$result = mysql_query($query, $connection);

$row = mysql_fetch_array($result) or die(mysql_error());
$totalitems1 = mysql_num_rows($result);
?>
<center><h3> Admin User List </h3></center>
<?php
echo "<table border=\"1\" align=\"center\">";
echo "<tr><th>PartyMaster ID</th>";
echo "<th>UserName</th>";
echo "<th>Last, First</th>";
echo "<th>Link</th></tr>";

while($row = mysql_fetch_array($result)) {
echo "<tr><td>";
echo $row['PartyMstrID'];
echo "<td>";
echo $row['UserName'];
echo "<td>";
echo " " . $row['LastName'] . ", " . $row['FirstName'] . " ";
echo "<td>";
echo "<a href = \"http://www.505575.com/editUser.php?id=" . $row['PartyMstrID'] . "\" >Edit</a>";

// echo "<td>";
// echo $row['XrefPartyRoleID'];

echo "</td></tr>";
}

echo "</table><br/><br/> ";

$paginaton = getPaginationString( $page, $totalitems, $limit,
$adjacents = 1,
$targetpage = "adminUserList.php",
$pagestring = "?page="
); // Functon found in functions.php

echo $paginaton;
?>
</td>

我花了很多时间在网上寻找解释但没有成功。我已经关闭了 $pagination 代码行但没有效果。我尝试了各种其他技巧并回应了输出。返回的行数 (n) 总是正确的,但表中只出现了 n-1 行。有什么想法吗?

谢谢 - 唐

最佳答案

每次调用 mysql_fetch_array 时,您都会从资源中获取一行。当资源没有更多行可提供时,它返回 false。这就是 while ($a = mysql_fetch_array($resource)) 循环的工作方式。

    $result = mysql_query($query, $connection);
$row = mysql_fetch_array($result) or die(mysql_error());
$totalitems1 = mysql_num_rows($result);

// first row is taken from resource

....

while($row = mysql_fetch_array($result))

// now take the rest of the rows

如您所见,您的代码完全按照您的指示执行!只需删除第一个 $row = mysql_fetch_array($result) or die(mysql_error()); 因为它无论如何都没有任何作用。

关于PHP mysql_fetch_array 不返回所有行 - 总是忽略一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7721049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com