Php 如何将数组限制为某个数字?

Php 如何将数组限制为某个数字?,php,mysql,Php,Mysql,实际上,我试图做的是将传入的搜索存储在数据库中,然后显示在一个网页上,限制在某个数字,比如10,标题为“最近的搜索”。若您在数据库查询中限制10,那个么它将在10之后停止。所以思想会切断循环,但这两种情况都会在10点停止。所以在那之后,无论发生什么,它都不会更新它。在这种情况下有人能帮我吗 $result = mysql_query("SELECT * FROM query ORDER BY regtime DESC"); while($row = mysql_fetch_array($resu

实际上,我试图做的是将传入的搜索存储在数据库中,然后显示在一个网页上,限制在某个数字,比如10,标题为“最近的搜索”。若您在数据库查询中限制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>";
}
$result=mysql\u查询(“按regtime DESC从查询顺序中选择*);
while($row=mysql\u fetch\u数组($result))
{
回声“
”; }
$count=0;
$result=mysql_query(“按regtime DESC从查询顺序中选择*);
而($count<10&&$row=mysql\u fetch\u array($result))
{
$count++;
回声“
”; }
$count=0;
$result=mysql_query(“按regtime DESC从查询顺序中选择*);
而($count<10&&$row=mysql\u fetch\u array($result))
{
$count++;
回声“
”; }
试试这个:

$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;
}
$result=mysql\u查询(“按regtime DESC从查询顺序中选择*);
$counter=0;
while($row=mysql\u fetch\u数组($result))
{
回声“
”; 如果(++$计数器===10)中断; }
循环增加
$counter
变量的值,当它变为10时,
break
关键字退出
,而
循环只给您10次迭代。

尝试以下操作:

$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;
}
$result=mysql\u查询(“按regtime DESC从查询顺序中选择*);
$counter=0;
while($row=mysql\u fetch\u数组($result))
{
回声“
”; 如果(++$计数器===10)中断; }

循环增加
$counter
变量的值,当它变为10时,
break
关键字退出
,而
循环只给你10次迭代。

限制什么数组?我在你的代码中没有看到数组。如果要限制回声的数量,可以计算一个变量,然后在达到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>";
}
$result=mysql\u查询(“按regtime DESC从查询顺序中选择*);
while($row=mysql\u fetch\u数组($result))
{
如果($i++>=10)中断;
回声“
”; }
限制什么数组?我在你的代码中没有看到数组。如果要限制回声的数量,可以计算一个变量,然后在达到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>";
}
$result=mysql\u查询(“按regtime DESC从查询顺序中选择*);
while($row=mysql\u fetch\u数组($result))
{
如果($i++>=10)中断;
回声“
”; }
不是请求的答案,而是

不要存储搜索。使您的数据能够高效搜索。(搜索友好的模式、索引、分区、更多硬件)

原因: 如果从查询表中读取,则查询数据不再是实时的 查询表中的重复数据需要更多空间 需要更多io来填充查询表

使用2个查询或估计(准确度有多重要?(因为它是存储的,所以数字很可能不准确))

“按regtime DESC从查询顺序中选择*”和限制(10)
“从查询中选择计数(*)…

不是请求的答案,而是…”

不要存储搜索。使您的数据能够高效搜索。(搜索友好的模式、索引、分区、更多硬件)

原因: 如果从查询表中读取,则查询数据不再是实时的 查询表中的重复数据需要更多空间 需要更多io来填充查询表

使用2个查询或估计(准确度有多重要?(因为它是存储的,所以数字很可能不准确))

“按regtime DESC从查询顺序中选择*”和限制(10)
“从查询中选择计数(*)…

为什么没有人想到:


按regtime DESC LIMIT 0,6从查询顺序中选择*为什么没有人想到:


按regtime DESC LIMIT 0,6从查询顺序中选择*你到底想做什么?他想做
LIMIT 10
while
循环中的SQL语句中所做的事情。为什么不使用
LIMIT
?@Felix Kling:有时人们喜欢检索所有结果进行计数(通过num_行),但这是一种非常简单的方法。实际上,我试图做的是将传入的搜索存储在数据库中,然后显示在一个网页上,限制在某个数字,比如10,标题为“最近的搜索”。如果在数据库查询中限制10,那么它将在10后停止。所以思想会切断循环,但这两种情况都会在10停止。所以在那之后,无论发生什么,它都不会更新它。在这种情况下,有人能帮我吗?你到底想做什么?他想做
LIMIT 10
while
循环中的SQL语句中所做的事。反对
LIMIT
的原因是什么?@Felix Kling:有时人们喜欢检索所有结果进行计数(通过num_行),但这是一种非常简单的方法。实际上,我试图做的是将传入的搜索存储在数据库中,然后显示在一个网页上,限制在某个数字,比如10,标题为“最近的搜索”。如果在数据库查询中限制10,那么它将在10后停止。所以思想会切断循环,但这两种情况都会在10停止。所以在那之后,无论发生什么,它都不会更新它。在这种情况下,有人能帮我吗?+1只是吹毛求疵,但我会把$count比较放在提取之前,这样它会短路,保存读取。+1只是吹毛求疵,但我会把$count比较放在提取之前,这样它会短路,保存读取。如果($counter==10)中断,我会删除
和replace
$counter++
一起。如果($counter==10)中断,我将删除
和replace
$counter++
一起。这样也可以节省额外的阅读。