Dear Pak ellyx
Saya mengalami sedikit masalah pada fungsi looping foreach seperti yang sudah Bapak paparkan beberapa waktu yang lalu. apda beberapa form, fungsi ini berjalan dengan baik tanpa masalah. Akan tetapi ada satu form yang tidak dapat menjalankan fungsi ini. Selalu menghasilkan
Warning: Invalid argument supplied for foreach()
Berikut script yang sudah saya buat:
Script input.
<?
if ($jenisnilai=='Bulanan1' and $bidangstudi=='Agama_Katolik')
{
$marquery=mysql_query("SELECT * FROM siswa WHERE tahunpelajaran='$tahunpelajaran' AND kelas='$kelas' AND subkelas='$subkelas' ORDER BY siswa.id ASC",$jou);
if (!$marquery){
die ("Gagal menampilkan daftar nama!! ".mysql_error()); }
$hitung=mysql_num_rows($marquery);
echo "Jumlah data: ".$hitung."<br />";
$i=0;
echo "DAFTAR NILAI MATA PELAJARAN ".$bidangstudi." UNTUK NILAI ".$jenisnilai;
echo "<th>T/P</th><th colspan=\"2\">KELAS</th><th>SEMESTER</th><th>NAMA SISWA</th><th>UB1</th>";
while ($row=mysql_fetch_array($marquery)){
echo "<tr><td><input type=\"text\" size=\"9\" name=\"tahunpelajaran[$i]\" id=\"tahunpelajaran\" readonly=\"readonly\" value=\"".$row['tahunpelajaran']."\"/></td>
<td><input type=\"text\" size=\"3\" name=\"kelas[$i]\" id=\"kelas\" readonly=\"readonly\" value=\"".$row['kelas']."\"/></td>
<td><input type=\"text\" size=\"3\" name=\"subkelas[$i]\" id=\"subkelas\" readonly=\"readonly\" value=\"".$row['subkelas']."\"/></td>
<td><input type=\"text\" size=\"8\" name=\"semester[$i]\" id=\"semester\" readonly=\"readonly\" value=\"".$semester."\"/></td>
<td><input type=\"text\" size=\"40\" name=\"namasiswa[$i]\" id=\"namasiswa\" readonly=\"readonly\" value=\"".$row['nama_siswa']."\"/></td>
<td><input type=\"text\" maxlength=\"3\" size=\"9\" name=\"bulanan1[$i]\" id=\"bulanan1\" tabindex=\"1\"/></td></tr>";
$i++;
}
?>
Dan ini adalah scrip action-nya:
<?php
foreach($_POST['bulanan1'] as $i => $bulanan1){
$kelas = $_POST['kelas'][$i];
$subkelas = $_POST['subkelas'][$i];
$semester = $_POST['semester'][$i];
$tahunpelajaran = $_POST['tahunpelajaran'][$i];
$namasiswa = $_POST['namasiswa'][$i];
$marquery=mysql_query("INSERT INTO daftar_agama (tahunpelajaran, kelas, subkelas, semester, namasiswa, ub1)
VALUES ('$tahunpelajaran', '$kelas', '$subkelas', '$semester', $bulanan1'",$jou);
if(!$marquery){die ("Gagal ".mysql_error());}
}
?>
Saya coba buka referensi ttg ini, dan ada informasi yang mengatakan bahwa ini kemungkinan terjadi karena saya menjalankan foreach BUKAN pada array atau object. Padahal pada form inputnya khan itu sudah menghasilkan array.
Berhari2 saya bingung dan mencari informasi, tapi tetap buntu.
Mohon bantuannya, Pak ellyx.
Terima kasih.