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

あなたの質問は2つの部分で構成されています。

最初の部分: Is it possible to limit the results shown from a MYSQL database?

limitこれは、クエリ内で wordを使用して行うことができます。

例:

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

前のコードは、すべての製品を選択し、製品 1 から開始して、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 に答える