-1

Q が少し重複して申し訳ありませんが、以前の回答は減価償却されていると思います (PHP 5.3 では MySQLi_fetch_array() を使用する必要があることがわかりました)。

jpgraph を使用して、MySQL データベースからデータを取得しようとしています。必要な数値を取得する次のコードがあります。結果をエコーすると、問題なく回答が 1 つずつ吐き出されますが、配列には入れられません。

私はある行を置き換えようとしています

$ydata = array(1,2,3,4,5,6,7);


//query
$sql = "SELECT CONCAT( 'Week ', WEEK( TimeofCompletion ) , ' ', YEAR( TimeofCompletion ) ) AS Week, Count( * ) AS VolumeOfAnswers
FROM table01
GROUP BY WEEK( TimeofCompletion ) , YEAR( TimeofCompletion ) 
ORDER BY TimeofCompletion";

$ydata = array();

while($row = mysql_fetch_array($sql)){
// Create a temporary array
 $temp = array();

 $temp[] = "".$row['VolumeOfAnswers']."";
$ydata = '['. implode(', ', $temp) . ']';   
}

出力を行ごとに配列に取得する方法について何か提案はありますか?

よろしくモーディーズ

4

1 に答える 1

0
 $temp[] = "".$row['VolumeOfAnswers'].""; //what this suppose to do?

周りに引用符が必要だと思います。内部に一重引用符を追加します

 $temp[] = "'".$row['VolumeOfAnswers']."'";

そうでなければ、二重引用符はまったく必要ないので、それらを削除します。その後、配列はデータベースからの値を保持します。

ドキュメント によると、mysql_fetch_arrayは非推奨であり、PDO または MySQLi を使用する必要があります。ただし、それでも使用したい場合は、代わりにmysql_fetch_assocを使用することをお勧めします。

今質問について:

 while($row = mysql_fetch_array($sql)){
  // Create a temporary array
  $temp = array();

  $temp[] = "".$row['VolumeOfAnswers']."";
  //why is this here? should be outside of while loop shouldnt it?
  $ydata = '['. implode(', ', $temp) . ']';   
 }

$ydata は常に上書きされ、$temp配列の最後の要素のみを保持します。$ydata を while ループの外に移動するか、array_merge($ydata, $temp);

于 2013-01-22T21:10:52.510 に答える