2017-08-27 8 views
0

私は正しく通過するIDを得ることができないテーブルの最後の行を除いて、このwhileループは正常に動作します。 それは私に何かエラーを与えることはありませんが、私は "修正"リンク上の正しいIDを示し、右後にテーブルのすべてのHTMLコードが表示されます。 正しく連結されていないようです。PHPのループ中にhrefを通してIDを渡す

コードがあります:

while ($row = mysqli_fetch_assoc($result)){ 
    echo "<table><tr><td>" . $row["id"] . "</td>" . 
     "<td>" . $row["product_name"] . "</td>" . 
     "<td>" . $row["visible"] . 
     "<td><a href=\"modify.php?id=" . $row["id"] . ">Modify</a>" . 
     "</td></tr></table>"; 
} 
+0

あなた 'href'は、デバッグエラーを –

+0

ビューPHPエラーログを閉じていません、そして(必ずしも有用ではないが結びつける価値がある)HTMLエラーを見るためにソースコードを見る:) – James

答えて

1

あなたは罰金である、レコードごとにechoを使用しているが、各時間はあなたがブランドの新しいテーブルをエコー。おそらく、新しい行だけをエコーすることです。あなたがHTMLを書いているので、あなたは多くの文字列を連結する必要がないこと

echo '<table>'; 
while($row = mysqli_fetch_assoc($result)){ 
    echo "<tr> 
      <td> $row[id] </td> 
      <td> $row[product_name] </td> 
      <td> $row[visible] </td> 
      <td><a href='modify.php?id=$row[id]'>Modify</a></td> 
     </tr>"; 
} 
echo '</table>'; 

注:他の人が提案してきたように、あなたのhrefも適切に

のような何かをする閉じられていません。 1つの長い複数行の文字列を持つことができます。あなたの文字列に改行があっても、ブラウザはテーブルをうまく描画します。さらに、PHPは二重引用符で囲まれた文字列を解析し、文字列の値を代入するので、"<td>" . $row["id"]を実行する必要はありません。 "<td>$row[id]"

+0

ありがとう! 素晴らしい!それは仕事のプライムです! 私の問題を解決するだけでなく(閉じるhrefが見つかりませんでした)、さらに簡単にできました! – Willian

+0

@Willianそれは良いです。それがあなたを助けたら私の答えを選択することを忘れないでください – BeetleJuice

0

"が不足していて、hrefが閉じていないようです。以下では、不足分を追加して修正しました"。また、私は二重引用符の大部分を一重引用符に置き換えました。それは読みやすいように私の好みでした。私は二重だけの使用のために見逃した見積もりを特定するのが難しいと思う。

while ($row = mysqli_fetch_assoc($result)){ 
     echo '<table><tr><td>' . $row["id"] . '</td>' . 
      '<td>' . $row["product_name"] . '</td>' . 
      '<td>' . $row["visible"] . 
      '<td><a href="modify.php?id=' . $row["id"] . '">Modify</a>' . 
      '</td></tr></table>'; 
    } 
+0

ありがとうDave!あなたが正しい!あまりにも二重引用符であまりにも乱雑です! 一重引用符で読み取り可能にしました。 – Willian

0

whileループでhref属性を閉じるのを忘れたようです。

また、他のアンサーノートでは、このループを実行するたびにecho | printを使用して新しいテーブルを印刷しています。これはいくつかの結果をもたらす可能性があります。ここで

あなたは文字列名$tableにすべてを追加し、あなたがループで行われたときに、それをプリントアウトする例です。

<?php 
//Create start of table: 
$table = '<table><tbody>'; 

//Fetch rows: 
while ($row = mysqli_fetch_assoc($result)) { 

    //append to the table: 
    $table .= '<tr><td>' . $row['id'] . '</td>' . 
      '<td>' . $row['product_name'] . '</td>' . 
      '<td>' . $row['visible'] . //You forgot the " under here 
      '<td><a href="modify.php?id=' . $row['id'] . '">Modify</a>' . 
      '</td></tr>'; 
} 

//Append end of table: 
$table .= '</tbody></table>'; 

//print table: 
print $table; 
+1

ありがとうKristian!多くのテーブルの代わりに多くの行を持つ1つのテーブル! – Willian

関連する問題