2012-04-05 99 views
-3

当我试图从数据库中回显列计数器的值时,我收到资源ID#3错误。我只想得到一个单一的值。任何想法我怎么能做到这一点?mysql错误资源ID#3?

$Page = $_SERVER['PHP_SELF']; 
$num = preg_replace("/[^0-9]/", '', $Page); 


$query = "SELECT * FROM hitscounter WHERE page='$num';"; 
$res = mysql_query($query); 
if (mysql_num_rows($res) > 0) { 

mysql_query("UPDATE hitscounter SET counter=counter+1 Where page='$num'"); 
$views = mysql_query("SELECT counter FROM hitscounter WHERE page=555"); 
    mysql_fetch_array($views, MYSQL_NUM); 
    mysql_free_result($views); 
    echo $views; 
} 
+1

当然你。你使用了'mysql_fetch_array'错误。因此你不会回应查询的**结果**,因为你的'$ views'实际上是'mysql_query'调用。尝试自己解决错误,这些都是非常微不足道的,并且可以回答数千次。 php.net告诉你函数参数的顺序,检查出来。 – 2012-04-05 10:11:32

+0

您不存储mysql_fetch_array()的结果...它不是错误,$ views实际上是一个mysql资源,因为它作为查询结果返回。 – 2012-04-05 10:13:12

回答

1

你应该使用result你从mysql_fetch_array回来,就像这样:

$result = mysql_fetch_array($views, MYSQL_NUM); 
print_r($result); 
+0

为什么你var $结果,你打印结果? (以S) – user1200640 2012-04-05 10:40:57

+0

就是一个例子,print_r是一个很好的调试工具来检查你的变量的内容是什么。 – rednaw 2012-04-05 15:19:40

0

你如果条件应该是这样的

$result = mysql_fetch_array($res); 
if (count($result) > 0){ 
echo 'do something'; 
}