[英]how to return array for mysql_query?
// make empty array
$sqlArray=array();
$jsonArray=array();
// START NEED FAST WORKING ALTERNATİVES -----------------------------------------------------
// first 20 vistors
$query = "SELECT user_id FROM vistors LIMIT 20";
$result = mysql_query ($query) or die ($query);
// make vistors user query array
while ($vstr_line = mysql_fetch_array($result)){
array_push($sqlArray, $vstr_line['user_id']);
}
// implode vistors user array
$sqlArray_impl = implode("', '", $sqlArray);
// END NEED FAST WORKING ALTERNATİVES -----------------------------------------------------
// Get vistors information
$query = "SELECT id, username, picture FROM users WHERE id IN ('$sqlArray_impl')";
$qry_result = mysql_query($query) or die($query);
while ($usr_line = mysql_fetch_array($qry_result)){
array_push($jsonArray, $usr_line['id'].' - '.$usr_line['username'].' - '.$usr_line['picture']);
}
print_r($sqlArray);
echo '<br><br>';
print_r($jsonArray);
看到這個我的功能..我需要一個快速工作的替代品。
對我來說,功能在上述指定范圍內運行比其他方法要快。 查詢將返回數組嗎?
感謝所有幫手!
可以使用JOIN或SUB SELECT將查詢數從2減少到1嗎? 可能沒有太大的助益,但值得一試和更清潔的實現。
瓶頸在哪里? 最有可能的數據庫,而不是PHP代碼。
表/列是否正確索引? 對兩個查詢運行EXPLAIN。
最簡單的方法是將第一個查詢作為子查詢包括在內,從而避免了一次轉向數據庫和許多代碼:
// Get vistors information
$query = "SELECT id, username, picture FROM users WHERE id IN (SELECT user_id FROM vistors LIMIT 20)";
$qry_result = mysql_query($query) or die($query);
除非有更多理由將第一個分開,否則在您的代碼示例中不可見。
如果使用PDO(無論如何建議...),則可以使用fetchAll()
一次返回所有結果數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.