Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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 如何使用循环外的数组查询数据库_Php_Mysql_Implode - Fatal编程技术网

Php 如何使用循环外的数组查询数据库

Php 如何使用循环外的数组查询数据库,php,mysql,implode,Php,Mysql,Implode,嗨。我尽量不在循环中放置SQL查询,因为这样可以提高性能。我想我应该使用内爆。但我不知道怎么做。这是我的密码: <?php //FUNCTION CONNECTNG TO DB HERE function turn_result_to_array($result) { $result_array = array(); for ($count=0; $row = mysql_fetch_array($result); $count++) { $resu

嗨。我尽量不在循环中放置SQL查询,因为这样可以提高性能。我想我应该使用内爆。但我不知道怎么做。这是我的密码:

<?php 

//FUNCTION CONNECTNG TO DB HERE

function turn_result_to_array($result)
{
   $result_array = array();

   for ($count=0;  $row = mysql_fetch_array($result); $count++)
   {
      $result_array[$count] = $row;
   }
   return $result_array;
}


function get_sender_username()
{
   //connect to DB 

   $query = sprintf("SELECT DISTINCT sender FROM direct_messages
                                    WHERE receiver_username='%s'
                        ORDER BY direct_messages.id DESC", 
                   mysql_real_escape_string($_COOKIE['username']));

   $result = mysql_query($query);

   $result = turn_result_to_array($result);

   return $result;

}

$senders = get_sender_username(); 

foreach($senders as $sender)
{ //SELECT IMAGE(S) FROM USER TABLE WHERE USERNAME = $SENDERS }

这里有一种方法:

$senderInString = implode("','",$senders);
$senderInString = "('$senderInString')";
$newQuery = "SELECT something FROM tables WHERE sender in $senderInString;"
$newResult = mysql_query($newQuery);
使用


在foreach的位置上,您还需要执行其他检查,例如无结果……等等,您正在谈论的是哪个循环?
      $query= "SELECT IMAGE(S) FROM USER TABLE WHERE USERNAME  IN (".implode(',',$senders).")";
      $result = mysql_query($query);