我是否限制阵列到一定数量?

时间:2010-06-10 17:26:07

标签: php mysql

实际上我要做的是将传入的搜索存储在数据库中,然后显示到限制为特定数字的网页,例如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>";
}

5 个答案:

答案 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