2017-08-08 70 views
0

我真的不知道發生了什麼事情。BBCode結束標記殺死PHP mysqli查詢

它工作正常,直到我把結尾標籤放在BBCode標籤上。

所以這將很好地工作:

$article = <<<EOF 
<article> 
    <code> 
    [b]$title 
    </code> 
</article> 
EOF; 

但是該會殺死整個代碼並沒有打印任何結果:

$article = <<<EOF 
<article> 
    <code> 
    [b]$title[/b] 
    </code> 
</article> 
EOF; 

我雙擊通過將完全相同的代碼變成普通的舊檢查HTML,它會顯示代碼很好。我也試過[/ b] $標題,並工作,我不能有一個開放和結束標籤。

這裏是編碼的其餘部分:

require ("db_connect.php"); 

$residential = mysqli_query($db_connect,"SELECT * FROM residential ORDER BY id"); 

while ($row = mysqli_fetch_array ($residential)) { 
    include "results.php"; 
    $title = "$row['title']"; 
    echo $article; 
    } 
+0

定義 「殺死」。你是什​​麼錯誤?你在看數據庫報告的錯誤消息嗎?提供[mcve]。我們不知道與數據庫通信的PHP是什麼樣的。 – Quentin

+0

我將添加其餘的編碼。至於殺,我的意思是,它返回空白的結果。代碼死了,我忘了如何回顯錯誤代碼,所以沒有。 – reanseih

+1

'ini_set('display_errors',1); error_reporting(E_ALL);'會顯示錯誤。把它放在頁面的頂部。 – Rasclatt

回答

0

嘗試使用您的循環不同的字符串類型和順序,看看是否可行與否:

results.php

$article = " 
<article> 
    <code> 
    [b]{$title}[/b] 
    </code> 
</article>"; 

$article = " 
<article> 
    <code> 
    [b]".$title."[/b] 
    </code> 
</article>"; 

ob_start(); 
?> 
<article> 
    <code> 
    [b]<?php echo $title ?>[/b] 
    </code> 
</article> 
<?php 
$article = ob_get_contents(); 
ob_end_clean(); 

然後在循環:

while ($row = mysqli_fetch_array($residential)) { 
    $title = $row['title']; 
    include('results.php'); 
    echo $article; 
} 

或不包括在環路頁:

while ($row = mysqli_fetch_array($residential)) { 
    $title = $row['title']; 
    echo " 
    <article> 
     <code> 
      [b]".$title."[/b] 
     </code> 
    </article>"; 
} 
+0

解決!謝謝!與第一個一起編碼會花費太長的時間來處理其他方法。仍然不知道它爲什麼挑剔,但... – reanseih

+0

是的,我通常不使用HEREDOC,我更喜歡使用其他字符串方法,所以我不能很好地解決HEREDOC語法錯誤,而無需查看手冊。 – Rasclatt