-2

ひえ。これによりパフォーマンスが向上するため、ループ内に 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 }

クエリを FOREACH 内に配置する代わりに、後で配置したいので、データベースへの複数回の往復を行いません。参考までに、PDO に切り替える必要があることは既にわかっています。前もって感謝します。

4

2 に答える 2

0

使用する

      $query= "SELECT IMAGE(S) FROM USER TABLE WHERE USERNAME  IN (".implode(',',$senders).")";
      $result = mysql_query($query);

foreachの代わりに

于 2013-04-03T13:34:19.650 に答える