0
<?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 
} 
?>
4

1 回答 1

0

假设代码在您查看主要产品的页面上:

$result= mysql_query(sprintf("SELECT * FROM news WHERE id <> %d LIMIT %d, 5", $post->id, $number));

此外,您不应该再使用mysql_*函数,因为它们已被弃用;结帐PDO

于 2012-08-30T16:02:31.843 回答