【问题标题】:Print large select SQL statement via php通过 php 打印大型 select SQL 语句
【发布时间】:2013-01-31 13:48:24
【问题描述】:

我希望这是您可以帮助我的事情。 我经过多次试验和错误提出了这个声明,它在我的 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();

【问题讨论】:

  • 为什么卡住了? $data->foo(); 我在您的 SELECT 语句中没有看到 foo 列。
  • print_r( $data ); 能给你带来什么结果吗?
  • 你需要显示查询吗?
  • 显然,您的问题实际上是指“打印 sql 语句本身”还是“打印来自成功查询到数据库的结果集”
  • 是的,这是我在这里的第一篇文章 - 我的主题太模糊了。我想在数据库中查询我的 select 语句,并通过 php 回显结果。基本上,我希望自己可以通过指向我的 php 文件的简单链接访问一个简洁的列表,而不是必须将我的 sql 语句放入 phpmyadmin 以查看结果

标签: php mysql file-io


【解决方案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

【讨论】:

    【解决方案2】:
    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);
    }
    

    【讨论】:

      【解决方案3】:

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

      $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'

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-12
        • 1970-01-01
        • 2011-03-04
        • 2019-05-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多