2016-12-23 22 views
0

我正在編寫一個簡單的網頁,其中有三頁。對於每個頁面,我在DB中都有一個表格,其中包含要在這些頁面上顯示的信息。幾乎就像一個博客,每一行都可能是博客文章。來自數據庫的文本正在修剪

例如,在我的數據庫(如VARCHAR),我可能有文字:

這是1號線
這是2號線
當我選擇這3行

但中的數據,得到的行和回聲它,文本以某種方式修整:

這是第1行這是第2行這是3線

當我查看數據庫中的字段時,文本格式正確,但在網站上顯示錯誤。

require('.connection.php'); 

if(isset($_GET['menyValg'])){ 
    $menyValg = $_GET['menyValg']; 

    switch($menyValg){ 
     case "Hovedside": 
      $sql = "SELECT tittel, tekst FROM hovedside"; 
      break; 
     case "Tjenester": 
      $sql = "SELECT tittel, tekst FROM tjenester"; 
      break; 
     case "Kontakt": 
      $sql = "SELECT tittel, tekst FROM kontakt"; 
      break; 
     default: 
      $sql = "SELECT tittel, tekst FROM hovedside"; 
    } 
}else{ 
    $sql = "SELECT tittel, tekst FROM hovedside"; 
} 

$result = $connection->query($sql); 

if($result->num_rows > 0){ 
    while($row = $result->fetch_assoc()){ 
      echo "<h2 class='contentTittel'>".$row['tittel']."</h2><p class='contentP'>".$row['tekst']."</p><br>"; 
    } 
}else{ 
    //could not find any data 
} 
+4

HTML不承認換行,儘量在包裹'nl2br你的輸出($行[ 'tekst']);',它換行轉換爲''
標籤。 – Tolios

+1

你的意思是正確的格式 - 包含換行符?換行符實際上不會在網站上顯示爲換行符。 –

+0

@Tolios非常好,它的工作。做了一個變量'$ text = nl2br($ row ['tekst']);'並改爲反映該變量。謝謝! – saltcracker

回答

1

實際上,數據庫中的換行符被打印爲換行符(如果您檢查來源),但HTML在打印數據時不識別換行符 - 要做到這一點,您需要將所有換行符轉換爲<br />標籤。

這樣做的最簡單方法是使用nl2br()函數,就像這樣。

echo "<h2 class='contentTittel'>".$row['tittel']."</h2><p class='contentP'>".nl2br($row['tekst'])."</p><br>"; 

http://php.net/manual/en/function.nl2br.php

+1

謝謝。由於您是第一個發表評論的人,因此被接受爲答覆。我不得不將它存儲在一個變量中,然後在while循環中使用它。如果沒有,我只會收到一個錯誤500. – saltcracker

+0

像:(* while while循環*){$ text = $ row ['tittel'];然後*用$ text *}迴應thingy。 Eyy,vikings ftw! :) – saltcracker

+0

你應該能夠將它連接到字符串中,就像這個答案中所示。只要記住右括號和點來分隔字符串;-) – Tolios

2

您可以使用兩種方法,第一種是採用nl2br其轉換換行字符做成<br />

echo nl2br($row['tekst']); 

,或者你可以重複內<pre>標籤的文本。

+0

謝謝,如果我把它變成一個變量並使用它,nl2br就可以工作。 1+的貢獻。 – saltcracker