簡體   English   中英

PHP准備的語句-打印結果

[英]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>標記中。

查看更多有關預包裝的信息:

http://www.w3schools.com/TAgs/tag_pre.asp

如何在預標簽中包裝文字?

希望您理解此代碼。 步驟:刪除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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM