2015-09-26 28 views
-1

這裏是我的代碼有人可以解釋我的代碼出了什麼問題嗎?

<div class="table-responsive"> 
         <table class="table table-striped table-hover"> 
          <thead> 
           <tr> 
            <td>Id</td> 
            <td>Articles Category</td> 
            <td>Update</td> 
            <td>Delete</td> 
           </tr> 
          </thead> 
          <tbody> 
           <tr> 
            <?php 
             $con = new mysqli("localhost", "root", "", "whatever"); 

     $sql = "SELECT id_kategori, nama_kategori FROM kategori"; 
     $stmt = $con->prepare($sql); 
     $stmt->execute(); 
     $stmt->bind_result($id, $cat); 
     while($stmt->fetch()) 
     { 
      echo "<td>$id</td>"; 
      echo "<td>$cat</td>"; 
      echo "<td>Update</td>"; 
      echo "<td>Delete</td>"; 
     } 
     $stmt->close(); 
            ?> 
           </tr> 
          </tbody> 
         </table> 
        </div> 

結果顯示我這個

「準備($ SQL); $ stmt->的execute(); $ stmt-> bind_result($ ID,$貓); while($ stmt-> fetch()){echo「」; echo「」; echo「」; echo「」;} $ stmt-> close();?>「

我改變它以此爲目的的面向對象

<div class="table-responsive"> 
         <table class="table table-striped table-hover"> 
          <thead> 
           <tr> 
            <td>Id</td> 
            <td>Articles Category</td> 
            <td>Update</td> 
            <td>Delete</td> 
           </tr> 
          </thead> 
          <tbody> 
           <tr> 
            <?php 
             include 'connection.php'; 
             $showall = new connection(); 
             $showall->category(); 
            ?> 
           </tr> 
          </tbody> 
         </table> 
        </div> 

我的結果就是這樣

category(); ?>

有人可以解釋我的代碼出了什麼問題嗎?

+2

沒有什麼似乎語法錯誤。但是,在桌子內部混合你的PHP邏輯是不好的!另外,你沒有做任何OOP。 – samayo

+2

看起來你的php配置中的簡短結束標籤被設置爲'>'或' - >'。因此,當代碼中出現該序列時,將停止php解釋。你想把這個配置改成'?>'。當你的實際代碼和它的渲染解釋代碼之間的某個層(比如某些視圖消毒劑或類似的東西),你的框架的一部分,也可能會出現這種效果。 – arkascha

+0

我的代碼是否適用於您的代碼?或者它真的是我的配置「?>」問題?我沒有改變我的xampp配置。 – user2977799

回答

1

首先您已經使用了非常糟糕的編碼標準。您只需在HTML中間寫入db連接?好吧,你可以寫你的HTML爲

echo '<div class="table-responsive"> 
         <table class="table table-striped table-hover"> 
          <thead> 
           <tr> 
            <td>Id</td> 
            <td>Articles Category</td> 
            <td>Update</td> 
            <td>Delete</td> 
           </tr> 
          </thead> 
          <tbody> 
           <tr>'; 
            <?php 
             $con = new mysqli("localhost", "root", "", "whatever"); 

     $sql = "SELECT id_kategori, nama_kategori FROM kategori"; 
     $stmt = $con->prepare($sql); 
     $stmt->execute(); 
     $stmt->bind_result($id, $cat); 
     while($stmt->fetch()) 
     { 
      echo "<td>$id</td>"; 
      echo "<td>$cat</td>"; 
      echo "<td>Update</td>"; 
      echo "<td>Delete</td>"; 
     } 
     $stmt->close(); 
            ?> 
           echo '</tr> 
          </tbody> 
         </table> 
        </div>'; 
+1

這並不好。如果你想支持良好的風格,那麼爲什麼不把所有的PHP放在文件的頂部,然後把HTML作爲普通的HTML保留在底部,只需要根據需要回顯變量,即''?更好的是,將HTML放在一個單獨的文件中,然後包含它。 –

+0

Thnx,我知道我的代碼很奇怪。但我能再問一件嗎? 是不是很好,如果我從PHP調用HTML頁面,然後從該HTML我打電話另一個PHP文件? 我從這個php調用上面的代碼。 <?php \t include'html/head.html'; \t包含'html/nav.html'; \t包含'html/article.html'; \t包含'html/footer.html'; ?> – user2977799

+1

@ SverriM.Olsen是的編程實踐... user2977799 ..你需要練習良好的編程風格,而不是將任何PHP代碼混合到任何地方...... – Exception

相關問題