0
    <?php
include 'config.php';
$tid = $_GET['tid'];
$sql="SELECT FROM topics where tid='$tid'";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
?> 
<div class="topics"><font size="4"><?php echo $rows['title']; ?></font></div><div class="tdm"><br/><center><img src="http://appricart.com/test/img/<?php echo $rows['photo']; ?>" height="100" width="100"/><br/>
<small><?php echo $rows['message']; ?></small></div>
<?php
}
include 'foot.php';
?>

有时这段代码有效,有时它不能帮助我解决这个问题。

它显示了这个错误

mysql_fetch_array() expects parameter 1 to be resource
4

2 回答 2

1

您没有进行任何错误检查来防止这种情况。当您的 MySQL 查询无法执行时会导致此错误。你有一个mysql_query()语句,结果存储到一个变量中。稍后,您将在mysql_fetch_array()语句中使用该变量。

如果mysql_query失败,则返回FALSE布尔值。mysql_fetch_array期望它是一种资源。

要解决此问题并了解查询失败的原因,请使用该mysql_error()函数。

$result = mysql_query($sql);
if (!$result) { 
    die('Query failed because: ' . mysql_error());
}
else {
//proceed
}

在这种情况下,您没有从数据库中选择任何内容,正如上面 Sean 所提到的。

尝试以下操作:

$sql = "SELECT * FROM topics where tid='$tid'";

或者

$sql = "SELECT topics FROM topics where tid='" . $tid . "'";

另外,请不要mysql_*在新代码中使用函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2013-08-18T17:20:31.087 回答
0
 <?php
include 'config.php';
$tid = $_GET['tid'];
$sql="SELECT FROM topics where tid='$tid'"; // here is the error
$result=mysql_query($sql);

您没有从表格主题中选择任何内容。因此它显示错误..

$sql="SELECT * FROM topics where tid='$tid'"; // this would be better

欲了解更多信息,请访问mysql_fetch_array

于 2013-08-18T17:27:21.107 回答