特定の選択されたレコード (ユーザー入力に応じて) が選択され、CSV ファイルにエクスポートされるスクリプトを動作させようとしています。これを行うためにあらゆる種類の方法を試しました。これまでのところ、これは私が見つけることができる最も成功したものです(実際には数年前に行ったコードから)が、行がなくなるまで最初の行を何度も返すだけです(私のおがくずを見ることができます-結果が尽きるまで行を取得し続けるように PHP に指示していました)。私の質問:おそらくこれを行う簡単な方法があります-何か考えはありますか? そうでない場合、次にループが実行されたときに MySQL を次の行に進めるにはどうすればよいですか? とにかくmysql_fetch_arrayでそれを行うべきだと思いました。
はい、私は fputcsv を見てきましたが、渡すデータを取得できないようです。fputcsv を使用して配列を渡し、mysql_fetch_array、mysql_fetch_assoc、または mysql_fetch_row を介して配列を取得しようとすると、CSV ファイルは常に空白になります。
私は進みながら学んでいますが、これは、前進し続けるために何かを学んでいないときの 1 つです。そして、私もそこまで詳しくありません。
私のコード、または少なくとも必要なだけ:
$result = mysql_query("SELECT id FROM student_history WHERE username='$username'");
$numrows = mysql_num_rows($result);
if (!$result) {
die("Query to show fields from table failed!:" .mysql_error());
}
$write = fopen("exportedmagic.csv", 'w') or die ("Can't create/open file to write! Drats!");
fwrite($write, "ID, Username, Class, Status, Date, Time\n");
while($numrows > 0) {
$query = "SELECT id, username, class, status, date, time FROM student_history WHERE username='$username'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$id = $row['id'];
$username = $row['username'];
$class = $row['class'];
$status = $row['status'];
$date = $row['date'];
$time = $row['time'];
fwrite($write, $id .", " .$username .", " .$class .", " .$status .", " .$date .", " .$time ."\n");
$numrows--;
}