php在for循环中运行mysql_query

时间:2016-08-10 21:27:25

标签: php mysql

我正在运行特定的mysql查询的不同参数,所以我需要在一堆中运行它们。所以说

$server = 'server_';
for ($a=0 ; $a<5 ; ++$a) {
     $criteria = $server . $a;
     $query1 = 'select blabh blah not important ' . $criteria . 'order by date desc limit 10';
     $query_result = mysql_query($query1);

}

以上仅返回server_4的结果

我天真地以为我可以做到

$query_result .= mysql_query($query1);

但显然这不起作用。我希望没有人说为什么不运行mysql      喜欢&#39; $ server%&#39;

我正在寻找能否实现我想做的事情。追加..我猜字符串附加是可能的,但我只是不知道从mysql回来的是什么?

获取代码示例

select * from tableName where server like $criteria order by date desc limit 10

=============================================== ========== 代码示例

$data = array(); 
$dataMaster = array();

   for ( $x = 0; $x <= 8; $x++ ) {
           $server = ‘server_’ . $x;
           $myquery = 'select * from serverTable where  servername like ' . '"' .  $server . '"'  . ' order by date1 desc limit 100';


           $query = mysql_query($myquery);
           if ( ! $query ) {
                   echo mysql_error();
                   die;
           }
           for ( $x = 0; $x < mysql_num_rows($query); $x++ ) {
              $data[] = mysql_fetch_assoc($query);
           }

           $data = array_reverse($data);
            array_push($dataMaster, $data);
   }

   echo json_encode($dataMaster)

1 个答案:

答案 0 :(得分:2)

尽量避免PHP循环中的SQL,你可以改为:

SELECT * FROM serverTable WHERE servername IN 
('server_0', 'server_1', 'server_2', 'server_3', 'server_4')