我正在尝试返回字段值。我在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条目。
感谢您的所有帮助,我爱这个社区!
最佳答案
SELECT 'field'(单引号,如您的phpmyadmin查询中)选择文字字符串field。
SELECT `field`(如PHP查询中的反引号)从名为field的字段中选择值。
mysql_fetch_assoc()从查询结果句柄返回一行。您打算捕获作为结果句柄的mysql_query()的返回,并从中重复“获取”行。而是多次调用mysql_query(),每次都返回一个新的结果集,并每次都从结果集中获取第一行。
更新
您想要这样的东西:$results = mysql_query(...);
for ($x = 0; $x < $limit; $x++) {
$data[] = mysql_fetch_assoc($results);
}
将$limit放入查询本身(LIMIT ...)可能是一个更好的主意。