2016-05-27 26 views
0

whileループとarray_pushを使用してqueryの日付を配列に格納しています。foreachループ内のループがforeachループに進まない

$h = array(); 
$j = array(); 

while ($g = mysql_fetch_array($f)) { 
    $date = new DateTime($g['selected_date']); 
    echo "<th>" . date_format($date, 'd') . "</th>"; 
    array_push($h, $date); 
    array_push($j, $g['selected_date']); 
} 

この配列がこれに戻りますが、これは問題ありません。

Array (
    [0] => 2016-05-23 
    [1] => 2016-05-24 
    [2] => 2016-05-25 
    [3] => 2016-05-26 
    [4] => 2016-05-27 
    [5] => 2016-05-28 
) 

私はこのように使用しよう:

$a = mysql_query("select * from center") or die(mysql_error()); 
$arr = array(); 

foreach($j as $k) { 
    while ($b = mysql_fetch_array($a)) { 
     $l = "select sum(yid.center_inventory) as 'total' 
       from yl_inventory_details as yid 
       left join yl_inventory as yi 
        on yi.yl_inventory_no = yid.yl_inventory_no 
       where yid.center_no = '$b[center_no]' 
       and yi.date = '$k'"; 
     $c = mysql_query("$l") or die(mysql_error()); 
     $d = mysql_fetch_array($c); 
     echo "<tr><td>".$b['center']."</td><td>".$d['total']."</td></tr>";    
    } 
} 

しかし、それだけ2016-05-23ある最初の値をとります。 whileループは次のforeach値に進まないようです。これをどうすれば解決できますか?

+3

他の作業を行う前に、そのmysql_関数呼び出しを取り除きます。これらの関数は長い間廃止されています。 mysqli_またはPDOを使用します。 – trincot

+0

あなたのwhileループにforeachループを入れて、あなたはゴールデン – Ale

答えて

0

mysql_fetch_arrayを使用すると、結果の次の行に移動します。最後の結果に達すると、FALSEが返されます。

コードを機能させるには、ループを別の方法でスワップするだけです。

など。

$a = mysql_query("select * from center") or die(mysql_error()); 
$arr = array(); 
while ($b = mysql_fetch_array($a)) 
{ 
    foreach($j as $k) 
    { 
      $l = "select 
        sum(yid.center_inventory) as total 
       from yl_inventory_details as yid 
       left join yl_inventory as yi on yi.yl_inventory_no = yid.yl_inventory_no 
       where yid.center_no = {$b['center_no']} and yi.date = {$k}"; 
      $c = mysql_query($l) or die(mysql_error()); 
      $d = mysql_fetch_array($c); 
      echo 
      "<tr> 
       <td>{$b['center']}</td> 
       <td>{$d['total']}</td> 
      </tr>";    
    } 
} 
+1

で、 ''$ b [center_no]''に引用符を追加してください:) –