我是编程新手。因为我还是个学生,所以过了几个小时我似乎都没法修好,这是我的论文。
我正试着从两张table上取记录 prisoner
table visitations
表-这个表有囚犯id外键,所以如果我点击一个囚犯,它也会显示他的探视记录。
这是我的密码:
<?php
include "connect.php";
$id = $_GET['id'];
$result = $connect->query(
"SELECT * FROM prisoner
INNER JOIN visitations ON prisoner.prisoner_id = visitations.prisoner_id
WHERE prisoner.prisoner_id = $id"
) or die($connect->error);
$visit = $connect->query(
"SELECT visitor,date_of_visit,time_of_visit,affinity,homeAddress FROM visitations
INNER JOIN prisoner ON prisoner.prisoner_id = visitations.prisoner_id
WHERE visitations.prisoner_id = $id"
) or die($connect->error);
囚犯桌
while($row = $result->fetch_assoc()){
$id = $row['prisoner_id'];
$photo = $row['photo'];
$gname = $row['givenName'];
$mname = $row['middleName'];
$lname = $row['lastName'];
$aname = $row['nickname'];
<div class="row text-center">
<?php echo "<img style = 'width: 16%;height: 16%;margin-top:30px;'src='images/".$photo."' >";
echo "<br><br>$gname $mname $lname";
?>
</div>
<?php
echo "<div class='col-lg-3'>Nickname: $aname </div>";
}
探视
<h4>Visitations</h4>
</div>
<table border = 1>
<tr>
<th>Visitor Name</th>
<th>Date of Visit</th>
<th>Time of Visit</th>
<th>Affinity</th>
<th>Home Address</th>
<tr>
<?php
while($row2 = $visit->fetch_assoc()){
$v_visitor = $row2['visitor'];
$v_date = $row2['date_of_visit'];
$v_time = $row2['time_of_visit'];
$v_affinity = $row2['affinity'];
$v_address = $row2['homeAddress'];
echo "
<tr>
<td>$v_visitor</td>
<td>$v_date</td>
<td>$v_time</td>
<td>$v_affinity</td>
<td>$v_address</td>
</tr>
</table>";
}
它只从visitations表中获取记录,而且我不知道为什么其他记录不在html表中。
这是它显示的内容:
有人能指出我代码的问题吗
2条答案
按热度按时间wxclj1h51#
在这个上下文中,每个连接只能使用一个活动语句,因此在转到新查询之前,您需要使用fetch\u all来使用第一个查询的整个结果集。
也可以使用multi-u query在单个批处理中执行多个查询。
b4qexyjb2#
除了提到的sql注入问题(归结为:如何正确编码sql查询)之外,还有更多可能出错的问题,另一个问题是html注入问题(归结为:如何正确编码html)。
所以简而言之:一个html表只能关闭一次,并且总是第一次匹配关闭
</table>
标签。在ops代码中,每行有一个结束表标记的输出(在while
body),在第一行之后,关闭表,并按照html规则呈现更多的数据,这些规则涉及如何呈现超出范围的标记中的文本数据(即此处表下的文本)。因此,不仅要做好有关sql注入的sql作业,而且首先要熟悉如何改进php模板文件的编写。例如,你可以从
<?= $variable ?>
表示法,由于这是html而不是纯文本,所以越正确<?= htmlspecialchars($variable) ?>
变体。