【发布时间】:2012-10-06 18:59:16
【问题描述】:
这是我的查询:
SELECT DISTINCT ap.apptype_id
FROM tblSubmission AS s
JOIN tblApp AS ap ON ap.app_id = s.app_id
WHERE s.app_id =406
OR s.app_id =180
OR s.app_id =179
它只返回与数据库中的行相关的唯一 apptype_id。它现在就像它应该的那样工作,除了它返回一个多维数组而不是一维数组这一事实。我可以继续编写一个 PHP 函数来解决这个问题,但我宁愿让查询正确地返回数组,而不是让服务器做额外的工作来解决查询问题。谁能帮帮我?
另外,如果有人发现我可以优化此查询以使其更快,那也太好了!
function db_query($querystring) {
$rec_set = array();
$result = mysql_query($querystring);
if (!$result) {
// do nothing, query might have failed but it might have just returned no results
#echo ("Invalid Query Result:<br /><b>" . $querystring . "</b><br />"); // debug
}elseif($result === true){
// do nothing, query didn't return anything but succeeded
}else{
while ($row = mysql_fetch_assoc($result)) { $rec_set[] = $row; }
mysql_free_result($result);
}
return $rec_set;
}
【问题讨论】:
-
你是如何获取它的?如果从
mysql_query调用,它应该返回一个资源。 -
你能展示一个它返回的数组的例子吗,因为我认为这更多的是你用来查询数据库的函数,而不是查询本身。
-
SQL结果的解释,据我所知,依赖于php端。 php代码在哪里?
-
这就是查询的工作方式。它将每个成功的选择作为一行返回,因此它将返回一个行数组,每行包含一个值数组。在这种情况下,数据只是一个值(id)。
-
这是从查询返回的数组: Array ( [0] => Array ( [apptype_id] => 2 ) [1] => Array ( [apptype_id] => 7 ) )
标签: php mysql sql arrays web-applications