私は、3つ以上の遅れが発生した生徒の値を印刷するように設計されたスクリプトを用意しています。私は、このスクリプトは、生徒の名前、そして、彼らは遅刻してきた倍の量の両方をプリントアウトしたいのですが、これまでのところ、私は次のスクリプトで自分の名前をプリントアウトするだけことができました:SQLカウントデータと配列データを一緒に送る方法は?
$sql = "select DISTINCT StudentID,classid,date from attendance_main where status = 'Tardy' AND classid like '%ADV%'";
$result = mysql_query($sql) or die (mysql_error());
while($row=mysql_fetch_array($result)) {
$studentid = $row['StudentID'];
$sql2 = "select distinct StudentID,classid,date from attendance_main where StudentID = '$studentid' AND status = 'Tardy' AND classid like '%ADV%'";
$result2 = mysql_query($sql2) or die (mysql_error());
while($row2=mysql_fetch_array($result2)) {
$tardycount = mysql_num_rows($result2);
$studentid = $row2['StudentID'];
if($tardycount >= 3) {
$sql3 = "select * from students where rfid = '$studentid'";
$result3 = mysql_query($sql3) or die (mysql_error());
while($row3=mysql_fetch_array($result3)) {
$fname[] = $row3['fname'];
}
}
}
}
$newdata = array_unique($fname);
foreach ($newdata as $value) {
echo $value;
}
I直感的にこれを行う方法を考えることができません。 whileループですべてを維持することはできませんでした(ユニークなエントリを要求しても同じ学生に複数の結果が出ていました)ので、array_uniqueを使用することが考えられる唯一の方法でした。
ありがとうございました!このような
テーブルレイアウトを追加してください。最初の一見では、あなたが本当にちょうど学生名と彼らが遅れている時間の量をプリントアウトしたい場合、あなたのPHPスクリプトソリューションは、あまりにも複雑なように見えます。これが理由であれば、1つのSQL文で簡単に実行可能でなければならず、必要に応じてPHPで処理できます。 – Bjoern