Php 如何为mysql\u查询返回数组?

Php 如何为mysql\u查询返回数组?,php,sql,mysql,arrays,Php,Sql,Mysql,Arrays,这是我的功能。。 我需要一个快速工作的替代品 功能在上述指定范围内,对我来说,运行速度比备选方案快。 查询将返回数组 谢谢所有的助手 如果仍然使用PDO推荐…,则可以使用一次返回所有结果数组 对于第二个查询,可以使用直接返回所需的结果 可以使用联接或子选择将查询计数从2减少到1吗?可能不会带来太大的提升,但值得一试和更干净的实现 瓶颈在哪里?很可能是数据库,而不是php代码 表/列的索引是否正确?对两个查询运行EXPLAIN 最简单的方法是将第一个查询作为子查询包含,从而消除了对数据库的一次访问

这是我的功能。。 我需要一个快速工作的替代品

功能在上述指定范围内,对我来说,运行速度比备选方案快。 查询将返回数组


谢谢所有的助手

如果仍然使用PDO推荐…,则可以使用一次返回所有结果数组

对于第二个查询,可以使用直接返回所需的结果

可以使用联接或子选择将查询计数从2减少到1吗?可能不会带来太大的提升,但值得一试和更干净的实现

瓶颈在哪里?很可能是数据库,而不是php代码

表/列的索引是否正确?对两个查询运行EXPLAIN


最简单的方法是将第一个查询作为子查询包含,从而消除了对数据库的一次访问和大量代码:

  // 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);

除非有更多的理由将第一个分开,但这在您的代码示例中是不可见的。

在我看来,这种行为非常好,我希望我不是无知。除非您的查询时间不好,否则它不应该太慢。你分析过它吗?你能给我们一些数字来说明为什么你需要更快的速度吗?为什么不嵌套查询呢?选择id、用户名。。。您是否有任何特定的理由要求快速替代方案?你现在对代码有什么问题吗?不是使用查询,而是使用当前代码?选择id、用户名、用户图片,其中id位于SelectUser\uID fromVistorsLimit 20->您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“LIMIT 20”附近使用的正确语法
  // 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);