gpt4 book ai didi

PHP 无限重复第一个 MySQL 结果

转载 作者:行者123 更新时间:2023-12-01 00:27:34 27 4
gpt4 key购买 nike

我有这段代码,我一直在处理它,当我运行它时,我得到了第一个结果 10 次(它曾经无限重复,直到我添加了 if 语句)。它应该返回前 10 个结果。我看过其他几个类似的问题,但这些问题的解决方案都没有在这里起作用。谁能看到我错过了什么?

<?php
$link = mysql_connect('XXXXXXXXX.com', 'XXXXXX', 'XXXXX');
$db = mysql_select_db('a1007515_troop1', $link);
$i = 1;
while($row = mysql_fetch_array(mysql_query('SELECT * FROM `posts` ORDER BY `pid` DESC LIMIT 10;')))
{
$authinfo = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `id` = '.$row['aid'].' LIMIT 1'));
echo '
<div class="content">
<a href="post.007?pid='.$row['pid'].'"><h1 class="title">'.$row['title'].'</h1></a>
<span class="authinfo">This post was made by '.$authinfo['name'].'<i>('.$authinfo['username'].')</i> on '.$row['date'].'.</span>
<p class="txt">'.$row['content'].'</p>
</div>';
if ($i == 10) { break; }
++ $i;
}
mysql_close($link);
?>

最佳答案

也许尝试简化事情,尝试坚持每行做一件事,而不是试图压缩它。

while 中调用 mysql_query 将在每次运行 while 循环时重复该查询,而不是获取下一个结果。在迭代另一个查询的结果时运行另一个 mysql 查询也会导致问题。

$link = mysql_connect('mysqlwebhost', 'user', 'pass');
$db = mysql_select_db('dbname', $link);

$result = mysql_query('SELECT * FROM `posts` p, `users` u WHERE u.id = p.aid ORDER BY `pid` DESC LIMIT 0,10;');

while ($row = mysql_fetch_assoc($result)) {
echo '
<div class="content">
<a href="post.007?pid='.$row['pid'].'"><h1 class="title">'.$row['title'].'</h1></a>
<span class="authinfo">This post was made by '.$row['name'].'<i>('.$row['username'].')</i> on '.$row['date'].'.</span>
<p class="txt">'.$row['content'].'</p>
</div>';
}

mysql_close($link);

您可能还希望避免使用 mysql_* 函数,因为它们已被弃用。看看mysqli or PDO .

关于PHP 无限重复第一个 MySQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11805658/

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