-2

みなさん、こんにちは。2 つの列と 35 行で構成される mysql テーブルを作成しました。問題は、列の一部をスパンまたはマージしたいのですが、その方法がわかりません。これが私のコードです。

$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 "<td colspan='2'>" . $row['Suspension'] . "</td>";
  }
  echo "</table>";
mysqli_close($con);
4

2 に答える 2

0

ロジックに関するいくつかの問題と、コードの問題がいくつかあります。データの形式と実現したいレイアウトを正確に説明していないため、両方のバージョンで 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()ステートメントはまったく必要ないと思います.

于 2013-07-04T10:35:10.767 に答える
0

および while ループに問題があります。それに応じて更新してください。

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>";
    echo "<td colspan='2'>" . $row['Suspension'] . "</td>";
   echo "</tr>";
  }
  echo "</table>";
于 2013-07-04T10:38:42.607 に答える