2016-12-07 43 views
0

我試圖顯示來自SQL查詢應該只有一個結果的信息。我想在不同的地方顯示不同的列(使用不同的格式)。PHP準備好的聲明 - 打印結果

這裏是我當前的代碼:

$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); 
} 

即使我已經包括了換行符,它只是打印在同一行這兩個結果。我無法弄清楚如何不經過一段時間就打印出來。任何見解?

+4

您需要爲每個註冊表的說明如果您使用HTML來回顯結果,則換行符('
')。 –

+0

如果您使用php作爲cli環境並輸出到非html文檔,那麼您必須注意爲終端使用正確的換行順序。 '\ n'是Linux風格(Unix),它不適用於MS-Windows或其他操作系統。 – arkascha

回答

2

傑伊·布蘭查德在你的問題的註釋部分指出...

你應該使用<br />作爲,告訴瀏覽器閱讀它作爲一個新的生產線。因爲\n\r只是在文件輸出中寫入新行,並且默認情況下瀏覽器不會將文件中的換行符作爲新行讀取,除非有<br />標記告訴瀏覽器將其作爲新行讀取。

因此:

printf("\n"); 

應改爲:

printf("<br />"); 

的選擇,如果您希望瀏覽器讀取新行字符作爲新行,你可以用在內容<pre></pre>標籤。

查看更多關於預包裝:

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

How do I wrap text in a pre tag?

+1

非常感謝!我是HTML和PHP的新手,所以我完全沒有意識到 – wendydarling

0

我希望你明白這個代碼。 步驟: 刪除while循環 生成的關聯數組,並保存到一個變量($行) 寫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 
} 
?> 
+1

你也可以這樣回顯:'echo'​​

'。 $ row ['name']。 '

​​

'。$ row ['description']。 '

';'以避免關閉並重復打開php標記。 –

+0

你是對的先生。 –