我正在研究数据库系统,我需要从数据库中返回值,然后将它们放在表格中,当我尝试运行网页时,我会使用join语句,它会出现此错误消息:
注意:未定义的索引:student.name in ...
以下是我的代码的一部分
if (isset($_POST['submit_exam'])){
$gerayesh_id=mysqli_real_escape_string($cnn,$_POST['gerayesh_id']);
$exam_number=mysqli_real_escape_string($cnn,$_POST['exam_number']);
$query="SELECT student.name , student.lname , student.student_id , exam.exam_number , exam.exam_id FROM";
$query.=" exam JOIN exam_register on exam.exam_id=exam_register.exam_id";
$query.=" JOIN student on student.student_id=exam_register.student_id";
$query.=" WHERE (exam.gerayesh_id=$gerayesh_id)";
$query.=" AND (exam.exam_number=$exam_number)";
$result=mysqli_query($cnn,$query);
if($result){
echo "<form method=\"post\" action=\"manage_add_result.php\" target=\"_blank\" style=\"float:right;\">";
echo "<table >";
echo "<tr>";
echo "<th>نام</th>";
echo "<th>نام خوانوادگی</th>";
echo"<th>شماره آزمون</th>";
echo "<th>انتخاب</th>";
echo"</tr>";
while($row=mysqli_fetch_array($result) ){
echo"<tr>";
echo"<td>{$row['student.name']}</td>";
echo "<td>{$row['student.lname']}</td>";
echo "<td>{$row['exam.exam_number']}</td>";
echo "<td><input type=\"checkbox\" value=\" {$row['student.student_id']}\" name=\"student_id\"/></td>";
echo "<input type=hidden name=exam_id value=\"{$row['exam.exam_id']}\">";
echo"</tr>";
}
// $row=mysqli_fetch_array($result);
echo"</table>";
echo "<input type=\"submit\" name=\"submit_student\" value=\"آپلود کارنامه;\">";
echo "</form>";
} else{echo mysqli_error($cnn);}
}
错误未定义索引显示应该在表中显示的所有变量 我想知道我能做些什么 谢谢你的时间
答案 0 :(得分:1)
关联数组中的键只是列名,而不是table.column
。所以使用:
echo"<td>{$row['name']}</td>";
echo "<td>{$row['lname']}</td>";
echo "<td>{$row['exam_number']}</td>";
echo "<td><input type=\"checkbox\" value=\" {$row['student_id']}\" name=\"student_id\"/></td>";
echo "<input type=hidden name=exam_id value=\"{$row['exam_id']}\">";
如果从不同的表中返回具有相同名称的列,则需要为它们提供别名以便能够引用它们。这不是您的查询的问题,SELECT
子句中的所有列名都不同。