2013-08-22 39 views
0

为什么我不能在我的代码中显示正确的输出?如何摆脱资源ID#6?

$total = mysql_query("SELECT SUM(issued_qty) FROM issuance_tbl WHERE issuance_tbl.machine_no_id = '%$find%'"); 
echo $total; 

我总是得到这样的错误:

Resource id #6 

感谢您的帮助。

+1

对于SELECT,SHOW,描述,解释等语句返回的结果集,请求mysql_query()成功返回的资源,或者在错误FALSE。 http://php.net/manual/en/function.mysql-query.php –

+3

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql )。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 – Touki

回答

3

使用mysql_fetch_array提取数据:

$total = mysql_query("SELECT SUM(issued_qty) FROM issuance_tbl WHERE issuance_tbl.machine_no_id = '%$find%'"); 
$data = mysql_fetch_array($total); 
echo $data[0]; 

顺便说一句,不要使用mysql_ *功能。他们已被弃用。

5

因为您还没有阅读和理解mysql_query的文档。它返回表示结果集的资源,而不是结果本身(因为结果可能包含多行)。

如果您在PHP的MySQL支持的早期学习,停止您正在做的事情并学习如何使用PDO来代替。

2

尽管mysql_函数已被弃用,您应该切换到mysqlipdo,我会尝试回答您的问题。

该查询看起来很成功,返回了id为#6的资源。要使用资源,你可以打电话mysql_fetch_row像如下:

$result = mysql_query("SELECT SUM(issued_qty) FROM issuance_tbl WHERE issuance_tbl.machine_no_id = '%$find%'"); 
$row = mysql_fetch_row($result); 

// Then your total is at index 0 of $row array 
$total = $row[0]; 
echo $total;