实际上我要做的是将传入的搜索存储在数据库中,然后显示到限制为特定数字的网页,例如10,标题为“Recent Searches”。如果你在数据库查询中限制10然后它在10之后停止。所以想到会切断循环,但两种情况它都停在10.所以在那之后发生什么搜索它不会更新它。有没有人能在这种情况下帮助我?
$result = mysql_query("SELECT * FROM query ORDER BY regtime DESC");
while($row = mysql_fetch_array($result))
{
echo "<img src='bullet.gif' align='absmiddle' class='col1ab'><a class='col1ab' href=".$row['web']." >www.".$row['web']."</a><br>";
}
答案 0 :(得分:4)
$count = 0;
$result = mysql_query("SELECT * FROM query ORDER BY regtime DESC");
while($count < 10 && $row = mysql_fetch_array($result))
{
$count++;
echo "<img src='bullet.gif' align='absmiddle' class='col1ab'><a class='col1ab' href=".$row['web']." >www.".$row['web']."</a><br>";
}
答案 1 :(得分:1)
限制什么阵列?我没有在你的代码中看到一个数组。如果你想限制你所做的回声数量,你可以计算一个变量,然后一旦达到10就中断,如下所示:
$result = mysql_query("SELECT * FROM query ORDER BY regtime DESC");
while($row = mysql_fetch_array($result))
{
if ($i++ >= 10) break;
echo "<img src='bullet.gif' align='absmiddle' class='col1ab'><a class='col1ab' href=".$row['web']." >www.".$row['web']."</a><br>";
}
答案 2 :(得分:0)
试试这个:
$result = mysql_query("SELECT * FROM query ORDER BY regtime DESC");
$counter = 0;
while($row = mysql_fetch_array($result))
{
echo "<img src='bullet.gif' align='absmiddle' class='col1ab'><a class='col1ab' href=".$row['web']." >www.".$row['web']."</a><br>";
if (++$counter === 10) break;
}
循环递增$counter
变量的值,当它变为10时,break
关键字退出while
循环,只需10次迭代。
答案 3 :(得分:0)
不是要求的答案,但......
不要存储搜索。使您的数据可以高效搜索。(搜索友好模式,索引,分区,更多硬件)
原因: 如果从查询表中读取,则查询数据不再是实时数据 查询表中的重复数据需要更多空间 填写查询表需要更多io
使用2个查询或估计(准确度有多重要?(因为它存储时,数字很可能不准确))
“SELECT * FROM query ORDER BY regtime DESC”with LIMIT(10) “SELECT count(*)FROM query ...”
答案 4 :(得分:0)
为什么没有人提出:
SELECT * FROM query ORDER BY regtime DESC LIMIT 0,6