<?php
mysql_select_db($database_XXX, $XXX);
$result= mysql_query("SELECT COUNT(*) FROM news");
$total = mysql_result($result, 0, 0);
// create a random number
mt_srand((double)microtime()*1000000);
$number = mt_rand()%$total;
// get a random entry
$result= mysql_query("SELECT * FROM news LIMIT $number, 5");
$row = mysql_fetch_array($result);
?>
这是我正在使用的PHP代码,它从我想要的表中提取随机数据,但我似乎无法弄清楚如何让它不显示当前发布的帖子。我需要输入if语句吗?如果我去哪里,它会如何实现它。我能做的唯一事情是使用if语句检查页面上的post_id是否与发布的post_id匹配。但我是新手,我唯一能想到的是。 if(!$ row ['post_id'] == $ _GET ['id']){ } 我不知道该怎么做才能做到。此外,如果有人知道如何或可以帮助指出我正确的方向,这将是伟大的。感谢。
以下是这里的总体更新。它仍然显示它已经发布了。希望这可以帮助。这是页面的php代码。
<?php
mysql_select_db($database_xxx, $xxx);
$result= mysql_query("SELECT COUNT(*) FROM news");
$total = mysql_result($result, 0, 0);
// create a random number
mt_srand((double)microtime()*1000000);
$number = mt_rand()%$total;
// get a random entry
$result= mysql_query(sprintf("SELECT * FROM news WHERE post_id <> %d LIMIT %d, 3", $post->post_id, $number));
$row = mysql_fetch_array($result);
?>
<?php
if (! isset($_GET['id']) || (int) $_GET['id'] === 0 ) {
echo "Incorrect input, aborting";
exit;
}
mysql_select_db($database_xxx, $xxx);
$sql = "SELECT * FROM news WHERE post_id = " . $_GET['id'];
// a line of debug to make sure things are as expected
$query = MYSQL_QUERY($sql);
// query your table for a match with post_id
if (mysql_num_rows($query) == "1")
// if a record is found, show the info
{
$fetch = mysql_fetch_array($query); // set $fetch to have the values from the table
} else {
echo "No match in database found."; // if no match is found, display this error
}
?>
答案 0 :(得分:0)
假设代码位于您查看主要产品的页面上:
$result= mysql_query(sprintf("SELECT * FROM news WHERE id <> %d LIMIT %d, 5", $post->id, $number));
此外,您不应再使用mysql_*
函数,因为它们已被弃用;结帐PDO