[英]PHP Prepared Statement— Printing results
我試圖顯示來自SQL查詢的信息,該信息應該只有一個結果。 我想在不同的地方(使用不同的格式)顯示不同的列。
這是我當前的代碼:
$query = "SELECT artist_ID, name, description, years_active FROM artist WHERE name LIKE ?;";
if (!($stmt = $conn->prepare($query))) {
echo "Prepare failed: (" . $conn->errno . ") " . $conn->error;
}
if (!$stmt->bind_param("s", $artist)) {
echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
$stmt->bind_result($artist_ID, $name, $description, $years_active);
while ($stmt->fetch()) {
printf("%s", $name);
printf("\n");
printf("%s", $description);
}
即使我包括了換行符,它也只是將這兩個結果打印在一行上。 而且我不知道如何在沒有while循環的情況下打印它們。 有見識嗎?
正如傑伊·布蘭查德(Jay Blanchard)在問題的評論部分所說的那樣...
您應該使用<br />
因為這會告訴瀏覽器將其讀取為新行。 因為\\n
和\\r
只是在文件輸出中寫入新行,並且默認情況下,瀏覽器不會將文件中的換行符讀取為新行,除非有<br />
標記告訴瀏覽器讀取作為新的一行。
因此:
printf("\n");
應該更改為:
printf("<br />");
或者,如果您希望瀏覽器將換行符讀取為新行,則可以將內容包裝在<pre></pre>
標記中。
查看更多有關預包裝的信息:
希望您理解此代碼。 步驟:刪除while循環生成一個關聯數組並將其保存到變量($ row)中,編寫一個foreach循環,以便您可以為數組中的每個注冊表打印名稱和說明。
<?php
if($row=$stmt->fetch_assoc()){
foreach($row as $value){
?>
<!--HTML Code-->
<!--This is between the foreach and it's end (})-->
<!--So anything between here will be interpreted by your browser for each element in $row-->
<tr>
<td><p><?php echo $row['name']?></p></td>
<td><p><?php echo $row['description'] ?></p></td>
</tr>
<?php
} //end of foreach
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.