2017-08-27 86 views
0

我有這個while循環工作正常,除了表中的最後一行,我無法讓id正確地通過。 它不會給我任何錯誤,但是當我將鼠標懸停在「修改」鏈接上時,它顯示正確的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每個記錄,這是很好的,但每次呼應了品牌新表。你可能的意思是隻回顯一個新行。正如其他人的建議,您的href也沒有正確關閉

做這樣的事情:

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>'; 

需要注意的是,因爲你寫HTML,你並不需要連接許多字符串。你可以有一個長的多行字符串。即使您的字符串中有換行符,瀏覽器也會呈現表格。另外,PHP可以解析雙引號字符串,並用變量替換字符串值,因此不需要執行"<td>" . $row["id"];這工作得很好:"<td>$row[id]"

+0

非常感謝! 太棒了!它正在工作黃金! 不僅解決了我的問題(無法找到關閉href),但也使它更簡單! – Willian

+0

@威利安很好。記得選擇我的答案,如果它幫助你 – 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

謝謝戴夫!你是對的!太混亂太多的雙引號! 單引號使其可讀。 – 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

謝謝克里斯蒂安!一張桌子上有很多行而不是很多桌子! – Willian