PHP和MySQL循环中的数组_和错误
我有一些mysql表,如下所示:PHP和MySQL循环中的数组_和错误,php,mysql,arrays,Php,Mysql,Arrays,我有一些mysql表,如下所示: | IDPRAKTIKAN | NAMAUSER | MODULKE | NILAI | STATUS_TUGASAKHIR | TAHUNAJARAN | SEMESTER | ----------------------------------------------------------------------------------------------- | 3332081478 | Ade Dwinanto | 0
| IDPRAKTIKAN | NAMAUSER | MODULKE | NILAI | STATUS_TUGASAKHIR | TAHUNAJARAN | SEMESTER |
-----------------------------------------------------------------------------------------------
| 3332081478 | Ade Dwinanto | 0 | 3 | 1 | 09/10 | 3 |
| 3332081478 | Ade Dwinanto | 1 | 55 | 1 | 09/10 | 3 |
| 3332081478 | Ade Dwinanto | 2 | 54 | 1 | 09/10 | 3 |
| 3332081478 | Ade Dwinanto | 3 | 45 | 1 | 09/10 | 3 |
| 3332081478 | Ade Dwinanto | 4 | 62 | 1 | 09/10 | 3 |
| 3332081478 | Ade Dwinanto | 5 | 20 | 1 | 09/10 | 3 |
| 3332081483 | Arya Prasettyo | 0 | 3 | 1 | 09/10 | 3 |
| 3332081483 | Arya Prasettyo | 1 | 55 | 1 | 09/10 | 3 |
| 3332081483 | Arya Prasettyo | 2 | 53 | 1 | 09/10 | 3 |
| 3332081483 | Arya Prasettyo | 3 | 47 | 1 | 09/10 | 3 |
| 3332081483 | Arya Prasettyo | 4 | 60 | 1 | 09/10 | 3 |
| 3332081483 | Arya Prasettyo | 5 | 20 | 1 | 09/10 | 3 |
这是我的PHP代码:
<?php
$setting_tahunajaranget = $_GET['setting_tahunajaran'];
$setting_kodepraktikumget = $_GET['setting_kodepraktikum'];
$nama_praktikum = $_GET['nama_praktikum'];
$setting_semesterget = $_GET['setting_semester'];
$query2 = "SELECT `nilai` AS semester FROM `nilaipraktikum` WHERE `modulke`= 0 LIMIT 0, 30 ";
$data = mysql_fetch_row(mysql_query($query2));
$query = "SELECT `idpraktikan`,namauser,`modulke`, `nilai`,`status_tugasakhir`,`tahunajaran`,`semester` FROM `nilaipraktikum` LEFT JOIN tabeluser ON tabeluser.npmuser = nilaipraktikum.idpraktikan WHERE `tahunajaran` = '$setting_tahunajaranget' AND`kodepraktikum` = '$setting_kodepraktikumget' AND `semester` = '$setting_semesterget' ";
$result = mysql_query($query);
if ($data = mysql_fetch_row($result)>=1)
{
$nilai = $data['nilai'];
if ($nilai = $setting_semesterget);
echo "<table width='auto' border='1' cellpadding='3' cellspacing='3' align='center'>
<tr>
<td align='center' valign='middle'><strong>No</strong></td>
<td align='center' valign='middle'><strong>Nama</strong></td>
<td align='center' valign='middle'><strong>NPM</strong></td>";
for($i=1;$i<=$jml_modul;$i++) {
echo "<td align='center' valign='middle'><strong>Modul Ke-".$i."</strong></td>";
}
echo "<td align='center' valign='middle'><strong>Rata-Rata</strong></td>";
if ($setting_status_ta=0)
{
}
if ($setting_status_ta=1)
{
echo"<td align='center' valign='middle'><strong>Nilai Tugas Akhir</strong></td>";
}
echo "<td align='center' valign='middle'><strong>Nilai Akhir</strong></td>
<td align='center' valign='middle'><strong>Grade</strong></td>
</tr>";
while(list($nim,$nama,$modulke,$nilai,$nilai_tugasakhir) = mysql_fetch_row($result)) {
$array_nim[$nim] = $nim;
$array_nama[$nim] = $nama;
$array_nilai[$nim][$modulke]= $nilai;
$array_nilaita[$nim][$nilai_tugasakhir]= $nilai_tugasakhir;
}
foreach($array_nim as $nim) {
echo "<tr><td align='center' valign='middle'>".(++$nomor)."</td>";
echo "<td align='center' valign='middle'>".$nim."</td>";
echo "<td align='center' valign='middle'>".$array_nama[$nim]."</td>";
for($i=1;$i<=$jml_modul;$i++)
{
echo "<td align='center' valign='middle'>".$array_nilai[$nim][$i]."</td>";
$nilaimodul += (array_sum(array($array_nilai[$nim][$i])));
}
$ratarata = ($nilaimodul);
echo "<td align='center' valign='middle'>".round ($ratarata,2)."</td>";
$ntugasakhir = $array_nilai[$nim][$jml_modul-($jml_modul-1)];
if ($setting_status_ta=0)
{
}
if ($setting_status_ta=1)
{
echo "<td align='center' valign='middle'>".round ($ntugasakhir,2)."</td>";
}
$nialiakhirpraktikum = $ntugasakhir+$ratarata;
echo "<td align='center' valign='middle'>".round ($nialiakhirpraktikum,1)."</td>";
if ($nialiakhirpraktikum>79)
$grade="A";
else if ($nialiakhirpraktikum<=79 AND $nialiakhirpraktikum>67)
$grade="B";
else if ($nialiakhirpraktikum<=67 AND $nialiakhirpraktikum>55)
$grade="C";
else if ($nialiakhirpraktikum<=55 AND $nialiakhirpraktikum>44)
$grade="D";
else
$grade="E";
echo "<td align='center' valign='middle'>".$grade."</td>";
echo "</tr>";
}
echo "</table>";
echo "<br/> <a href='javascript:history.back()'>Klik Disini Untuk Kembali</a>";
}
?>
只需添加初始化变量
$nilaimodul = 0; // try adding this to your code
for($i=1;$i<=$jml_modul;$i++)
{
echo "<td align='center' valign='middle'>".$array_nilai[$nim][$i]."</td>";
$nilaimodul += (array_sum(array($array_nilai[$nim][$i])));
}
$ratarata = ($nilaimodul);
$nilaimodul=0;//尝试将其添加到代码中
对于($i=1;$iFirst,您需要清理代码:if($setting_status_ta=0)…这些测试(使用=,而不是=),分配值(并修改变量)并且不测试是否相等。之后,请清理缩进以匹配实际循环,以便更容易遵循逻辑。警告!您的代码包含--您正在将未经筛选、未经验证的数据直接传递到SQL字符串中。请使用。@FiskDisk谢谢您的建议。:@Charles如何修复它?你有什么想法吗?谢谢@Husni,。。。我的问题解决了。。。非常感谢^_^@Najuullah.com我的荣幸:)