ロジックに関するいくつかの問題と、コードの問題がいくつかあります。データの形式と実現したいレイアウトを正確に説明していないため、両方のバージョンで bash を使用して、それらをテストし、どちらが後のレイアウトに適合するかを確認できます。
このバージョンでは、= の代入ではなく == の比較演算子を正しく使用するように IF ステートメントが修正されています。また、エンジンとサスペンションの列の値が一致する場合は、新しいテーブル行が作成されるため、次のようになります。
| ENGINE | SPEC |
| SUSPENSION |
$result = mysqli_query($con,"SELECT * FROM Spec");
echo "<table border='1' id='spec'>
<tr>
<th class='th'>Engine</th>
<th class='th'>Spec</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td class='td1'>" . $row['Engine'] . "</td>";
echo "<td class='td'>" . $row['Spec'] . "</td>";
echo "</tr>";
if($row['Engine'] == $row['Suspension']) {
echo "<tr><td colspan='2'>" . $row['Suspension'] . "</td></tr>";
}
}
echo "</table>";
mysqli_close($con);
もちろん、サスペンション列の内容がエンジン列の内容とまったく同じであることに依存していますが、そうではないことに賭けますが、それについての論理に対処する必要があります
他のやり方はこんな感じです。このバージョンが表示さ| ENGINE | SPEC |
れるか、エンジン列がサスペンション列と一致する場合は、| SUSPENSION |
代わりに列が表示されます。
$result = mysqli_query($con,"SELECT * FROM Spec");
echo "<table border='1' id='spec'>
<tr>
<th class='th'>Engine</th>
<th class='th'>Spec</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
if($row['Engine'] == $row['Suspension']) {
echo "<tr><td colspan='2'>" . $row['Suspension'] . "</td></tr>";
} else {
echo "<tr>";
echo "<td class='td1'>" . $row['Engine'] . "</td>";
echo "<td class='td'>" . $row['Spec'] . "</td>";
echo "</tr>";
}
}
echo "</table>";
mysqli_close($con);
どちらも機能しますが、どちらもあなたが個人的に探しているものを提供しないと思います.IF()ステートメントはまったく必要ないと思います.