从变量中打印MySQL查询结果

13

我之前写了这段代码(用PHP),但每次尝试输出$test时,我只会得到返回资源id 5。有没有人知道如何从变量中打印出mysql查询结果呢?

$dave= mysql_query("SELECT order_date, no_of_items, shipping_charge, SUM(total_order_amount) as test FROM `orders` WHERE DATE(`order_date`) = DATE(NOW()) GROUP BY DATE(`order_date`)") or die(mysql_error());
print $dave;

1
你需要从 $dave 中获取结果集。它只是一个 MySQL 结果资源,不包含结果行。 - Michael Berkowski
2
阅读手册(http://us.php.net/manual/en/function.mysql-query.php)以获取示例。除了官方的PHP文档,互联网和SO上也有很多示例。 - Michael Berkowski
谢谢Michael。当我尝试使用mysql/php时,很容易感到不知所措。虽然我花了很长时间才接受答案,但我非常感谢大家的帮助。 - Louis Stephens
4个回答

22

这将打印出查询:

$query = "SELECT order_date, no_of_items, shipping_charge, SUM(total_order_amount) as test FROM `orders` WHERE DATE(`order_date`) = DATE(NOW()) GROUP BY DATE(`order_date`)";

$dave= mysql_query($query) or die(mysql_error());
print $query;

这将打印出结果:
$query = "SELECT order_date, no_of_items, shipping_charge, SUM(total_order_amount) as test FROM `orders` WHERE DATE(`order_date`) = DATE(NOW()) GROUP BY DATE(`order_date`)";

$dave= mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_assoc($dave)){
    foreach($row as $cname => $cvalue){
        print "$cname: $cvalue\t";
    }
    print "\r\n";
}

请注意,这与PHP7不兼容。 - user1097111

5

你正在从数据库返回一个项目数组。那么你需要像这样做:

   $dave= mysql_query("SELECT order_date, no_of_items, shipping_charge, 
    SUM(total_order_amount) as test FROM `orders` 
    WHERE DATE(`order_date`) = DATE(NOW()) GROUP BY DATE(`order_date`)") 
    or  die(mysql_error());


while ($row = mysql_fetch_assoc($dave)) {
echo $row['order_date'];
echo $row['no_of_items'];
echo $row['shipping_charge'];
echo $row['test '];
}

1

来自php文档:

对于SELECT、SHOW、DESCRIBE、EXPLAIN和其他返回结果集的语句,mysql_query()在成功时返回一个资源,或在错误时返回FALSE。

对于其他类型的SQL语句,如INSERT、UPDATE、DELETE、DROP等,mysql_query()在成功时返回TRUE,或在错误时返回FALSE。

返回的结果资源应该传递给mysql_fetch_array()和其他处理结果表的函数,以访问返回的数据。

http://php.net/manual/en/function.mysql-query.php


0
$sql = "SELECT * FROM table_name ORDER BY ID DESC LIMIT 1";
$records = mysql_query($sql);

你可以将 LIMIT 1 改为 LIMIT 任何你想要的数字

这将会先显示最后插入的行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接