Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 返回字段名但不返回值的SQL查询_Php_Mysql_Sql - Fatal编程技术网

Php 返回字段名但不返回值的SQL查询

Php 返回字段名但不返回值的SQL查询,php,mysql,sql,Php,Mysql,Sql,我正在尝试返回字段值。我在PHP中尝试过它,它可以工作,但会一次又一次地返回相同的字段。所以通过直接查询进行测试,这就是我得到的 下面是我用来获取数据的函数: <?php function display_orders( $user_id, $limit ) { $data = array(); $user_id = (int)$user_id; $limit = (int)$limit; $func_num_args = func_num_args

我正在尝试返回字段值。我在PHP中尝试过它,它可以工作,但会一次又一次地返回相同的字段。所以通过直接查询进行测试,这就是我得到的

下面是我用来获取数据的函数:

<?php

function display_orders( $user_id, $limit ) {

    $data = array();

    $user_id = (int)$user_id;
    $limit = (int)$limit;

    $func_num_args = func_num_args();
    $func_get_args = func_get_args();

    //print_r($func_get_args);

    if ($func_num_args > 1) {

        unset($func_get_args[0]);
        unset($func_get_args[1]);


        $fields = '`' . implode('`, `', $func_get_args) . '`';

            for($x = 0; $x < $limit; $x++) {    

                $data[] = mysql_fetch_assoc( mysql_query("SELECT $fields
                                                          FROM  `users` ,  `vendor` 
                                                          WHERE $user_id = users.id 
                                                          AND $user_id = vendor.user_id 
                                                          ORDER BY vendor.DateRequested DESC") );

            }

        return $data;
    }

}

?>

这将返回以下内容,它将一次又一次地循环newegg条目


谢谢你的帮助,我爱这个社区

问题在于引用列名,这意味着对于查询结果中的每个匹配行,该值都将作为列返回


只需删除列周围的引号。首先对一列进行尝试,验证它是否有效,然后对其余列执行相同操作。

选择“字段”
(单引号,如在phpmyadmin查询中)选择文本字符串
字段

SELECT`field`
(在PHP查询中使用反勾号)从名为
field
的字段中选择值

mysql\u fetch\u assoc()
从查询结果句柄返回一行。您需要捕获
mysql\u query()
的返回,这是一个结果句柄,并从中重复“获取”行。而是多次调用
mysql\u query()
,每次都返回一个新的结果集,每次都从结果集中获取第一行

更新

你想要这样的东西:

$results = mysql_query(...);
for ($x = 0; $x < $limit; $x++) {
  $data[] = mysql_fetch_assoc($results);
}
$results=mysql\u查询(…);
对于($x=0;$x<$limit;$x++){
$data[]=mysql\u fetch\u assoc($results);
}

最好将
$limit
放在查询本身(limit…)中。

我喜欢你使用
var\u dump()
,请注意,你也可以使用
print\r($var)
更容易阅读。不要在查询中引用列名。我一直在youtube视频中学习。。。在echo上使用打印效果更好吗?谢谢!修复了phpmyadmin中的查询。。。循环问题仍然存在。循环问题很可能是由于查询造成的。打印PHP脚本运行的查询,通过phpMyAdmin运行该查询并查看结果。请参见下面的pilcrows答案。所以我需要循环查询并返回数组中的下一个值?这是有道理的!谢谢你的信息!等等,刚刚检查过,它是循环的。。。我是不是遗漏了什么?@HELPMEPLEASE,展示一下应该如何使用它。你正在循环调用
mysql\u query()
mysql\u fetch\u assoc
只是你做这件事的附带方式。嗯,我会检查一下文档,但是我应该使用另一个函数来获取数据。谢谢你的信息@请帮我更新答案。如果以上任何一项证明有帮助,请毫不犹豫地投票和/或接受。