通过php打印大型选择SQL语句

时间:2013-01-31 13:48:25

标签: php mysql file-io

我希望这是你可以帮助我的东西。 我经历了很多试验和错误,并在我的phpmyadmin视图中整齐地列出了所有内容。

SELECT DISTINCT inzone_product_lang.name, inzone_product.price, (inzone_product.price * 1.25) as pris
FROM inzone_product_lang 
INNER JOIN inzone_product
ON inzone_product.id_product=inzone_product_lang.id_product
ORDER BY inzone_product_lang.name, pris

我想把它变成一个php查询并打印出来 - 但我被困在这里。

$result = mysql_query("SELECT DISTINCT inzone_product_lang.name, inzone_product.price, (inzone_product.price * 1.25) as pris
FROM inzone_product_lang 
INNER JOIN inzone_product
ON inzone_product.id_product=inzone_product_lang.id_product
ORDER BY inzone_product_lang.name, pris
LIMIT 0, 900
");

$data = mysql_fetch_object($result);
    echo $data->foo();

3 个答案:

答案 0 :(得分:1)

循环遍历数据,就像这样,如果你想在表格中,你可以只在表格行中回显那些数据。像这样:

while ($data = mysql_fetch_object($result)) {
    echo $data->name;
    echo $data->price;
    ...
}

此外,您可以使用print_r之类的工具(在日志中特别有用)来查看此类对象的结构,如果安装了XDebug,var_dump非常好看。

var_dump($data); // Prints to document when loaded
error_log(print_r($data, true)); // Prints to error log

答案 1 :(得分:0)

echo $query="SELECT DISTINCT inzone_product_lang.name, inzone_product.price, inzone_product.price * 1.25) as pris FROM inzone_product_lang INNER JOIN inzone_product ON inzone_product.id_product=inzone_product_lang.id_product ORDER BY inzone_product_lang.name, pris LIMIT 0, 900";

$result = mysql_query($query);

while($data = mysql_fetch_object($result))
{
    print_r($data);
}

答案 2 :(得分:0)

您可以使用带有换行符的串联字符串,如下所示:

$query = "SELECT DISTINCT inzone_product_lang.name, inzone_product.price, (inzone_product.price * 1.25) as pris\n" .
"FROM inzone_product_lang \n" .
"INNER JOIN inzone_product\n" .
"ON inzone_product.id_product=inzone_product_lang.id_product\n" .
"ORDER BY inzone_product_lang.name, pris\n";

mysql_query($query);

“\ n”是一个空格。总是在双引号字符串中使用它。 如果要将查询打印到浏览器,有一个很好的PHP函数,名为“nl2br