0

是否可以限制从 MYSQL 数据库显示的结果?

目前结果显示在 html 表中,我如何只显示最新条目?

<?php
$con = mysql_connect("localhost","cl49-XXX","XXX");
if (!$con) 
{
  die('Could not connect: ' . mysql_error());
}
mysql_select_db("cl49-XXX", $con)or die("Unable to select database");

$result=mysql_query("SELECT * FROM products") or die('You need enter a category');

echo "<tr>"; // first row beginning
for ($i = 1; $i <= mysql_num_rows($result); $i++)
{
  $row = mysql_fetch_array($result);

  $prodname = $row['prodname'];
  $prodID = $row['prodID'];
  $catagory = $row['catagory'];

  echo "
  <td>$prodID</td>
  <td>$prodname</td>
  <td>$catagory</td>
  <td>
    <a href=deleteproduct.php?q=$prodID' class='btn mini red'>
    <i class='icon-trash'></i> Delete Item</a>
  </td>";

  echo "</tr><tr>"; // it's time no move to next row
}
echo "</tr>"; // last row ending
?>
4

4 回答 4

1

只需将您的查询切换到这样的内容!

 $result=mysql_query("SELECT * FROM products LIMIT 0,10")or die('You need enter a catagory' );

LIMIT 0,10 将显示您数据库中的前 10 个结果。

您甚至可以通过数据库中的特定元素对其进行排序。

 $result=mysql_query("SELECT * FROM products ORDER BY objectName LIMIT 0,10")or die('You need enter a catagory' );

如需进一步的 SQL 基本帮助:http ://www.sqlcommands.net/

祝你好运!

于 2013-08-05T15:25:58.470 回答
1

你的问题由两部分组成。

第一部分: Is it possible to limit the results shown from a MYSQL database?

您可以通过limit在查询中使用 word 来做到这一点。

例子:

mysql_query("SELECT * FROM products limit 1, 5");

前面的代码说选择所有产品并从产品一开始,只显示 5 个产品。

第二部分: how do I only show the newest entries ?

您可以这样做,必须首先创建调用date到您的产品表的列,然后在添加新产品时,使用time()函数将时间存储到date列中。
然后,当您想按最新产品显示产品订单时,您可以使用order by语句。

例子:

mysql_query("SELECT * FROM products order by date ASC limit 1, 5");

要将这些词应用于您的代码,只需要

  1. 在您的产品表中添加新列并调用它date
  2. 然后更改将产品添加到产品表的查询,以使用 time() 函数将时间添加到日期列。
    INSERT INTO tableName(date) VALUES('".time()."');
  3. 通过修改查询来显示按最新排序的产品

    $result=mysql_query("SELECT * FROM products ORDER BY date ASC LIMIT 0, 15") or die('You need enter a category');

于 2013-08-05T15:58:52.073 回答
0

只需添加一个计数器,当计数器达到一个数字时,使用:

break;

跳出循环。

例如

for ($i = 1; $i <= mysql_num_rows($result); $i++)
{
 if ($i==3) break;
}

当然,您可以更好地限制循环本身:

利用:

for ($i = 1; $i <= 4; $i++)

或在 SQL 查询中使用 LIMIT 选项

于 2013-08-05T15:27:50.117 回答
0

首先,当您还是新手时,您应该查看 PDO/Prepared 语句而不是 mysql_ 函数。

此外,您可以为您的 SQL 执行此操作:

$result=mysql_query("SELECT * FROM products ORDER BY name DESC LIMIT 0,10")or die('You need enter a catagory ' );

“名称”是您希望对其进行排序的产品/行名称的名称

于 2013-08-05T15:26:29.410 回答