我正在尝试获取此输出
Province
1.city 1 33poits
2.city 2 33poits
3.city 3 33poits
以及我当前的输出是
Province
1.city 1 33points
Province
2.city 2 33points
Province
3.city 3 33points
请在这里帮助一个新手,以下是我的php代码
<?php
$sql = "SELECT * FROM ccty WHERE ID=".$ID;
$results = $mysqli->query($sql);
if ($results->num_rows > 0) {
while ($row = $results->fetch_object()) {
?>
<table>
<tr><?= $row->PID; ?>
<td><?= $row->SPID; ?><?= $row->points; ?></td>
</tr>
<?php
}
} else {
echo "No record available!";
}
?>
答案 0 :(得分:3)
对于一个,您的表结构无效。
要每组仅打印一次PID
,请将先前的PID存储在变量中并进行检查-仅在其与以前不同的情况下才打印。
您还应该使用准备好的语句,而不是直接查询。
<?php
$sql = "SELECT PID, SPID, points FROM ccty WHERE ID=? ORDER BY PID";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", $ID);
$stmt->execute();
$stmt->bind_result($PID, $SPID, $points);
if ($stmt->num_rows) {
echo '<table>';
$previousPID = null;
while ($stmt->fetch()) {
if ($PID != $previousPID) {
echo '<tr><td>'.$PID.'</td></tr>';
$previousPID = $PID;
}
?>
<tr>
<td><?= $SPID." ".$points; ?></td>
</tr>
<?php
}
echo '</table>';
} else {
echo "No records available!";
}