2017-08-08 50 views
0

代碼:錯誤,根據顯示數據從數據庫

<!-- content --> 
<article id="content" class="tabs"> 
<div class="wrapper"> 
    <div class="box2"> 

     <?php 
      //session_start(); 
      $sql = "SELECT * FROM `db`.`news` ORDER BY `date` DESC LIMIT 20"; 
      include 'php/dbconnection.php'; 
      $conn = OpenCon(); //$conn=$_SESSION['conn']; 
      $result = mysqli_query($conn,$sql); 

      if($result){ 
       $rows = mysqli_fetch_array($result); 

       echo "<div class='wrapper tab-content'>"; 
       echo "<section class='col1'>"; 

       echo "<h4><span>" . $rows['date']. "</span> </h4>"; 
       echo "<p class='pad_bot2'><strong>". $rows['title']. " 
</strong></p>"; 
       echo "<p class='pad_bot1'>".$rows['des'] ."</p>"; 

       echo "</section>"; 
       echo "</div>"; 
      } 
     ?> 
     </div> 

    </div> 

</article> 
<!-- /content--> 

在這裏,我想,打印「新聞」從數據庫表中,但我無法打印任何東西網頁。 任何人都可以指出,這有什麼不對? 非常感謝您的幫助!

+0

使連接到數據庫,SQL之前選擇。 –

+0

是的,但沒有輸出 –

回答

0

對於評論$conn=$_SESSION['conn'];

不能存儲$_SESSION內的資源處理。請參閱PHP.net

某些類型的數據無法序列化,因此不會存儲在會話中。它包括資源變量或帶有循環引用的對象(即 將自身引用傳遞給另一個對象的對象)。

由於您的對象包含連接鏈接,因此無法序列化,只需重新連接每個請求即可。

而且可以使清潔模板類似下面

<!-- content --> 
<article id="content" class="tabs"> 
<div class="wrapper"> 
    <div class="box2"> 
     <?php 
      //session_start(); 
      $sql = "SELECT * FROM `db`.`news` ORDER BY `date` DESC LIMIT 20"; 
      include 'php/dbconnection.php'; 
      $conn = OpenCon(); 
      $result = mysqli_query($conn,$sql); 
      if($result): 
      while ($row=mysqli_fetch_row($result)): 
     ?> 
      <div class='wrapper tab-content'> 
      <section class='col1'> 
       <h4><span><?php echo $row['date'];?></span></h4> 
       <p class='pad_bot2'> 
        <strong><?php echo $row['title'];?></strong> 
       </p> 
       <p class='pad_bot1'><?php echo $row['des'];?></p> 
      </section> 
      </div> 
     <?php 
      endwhile; 
      else: 
     ?> 
     <p>No active news</p>  
     <?php 
      endif; 
     ?> 
     </div> 
    </div> 
</article> 
<!-- /content--> 
1

您必須將mysqli_fetch_row($result)放入循環中。

實例與您的情況:

if($result){ 
    while ($rows=mysqli_fetch_row($result)){ 

     echo "<div class='wrapper tab-content'>"; 
     echo "<section class='col1'>"; 

     echo "<h4><span>" . $rows['date']. "</span> </h4>"; 
     echo "<p class='pad_bot2'><strong>". $rows['title']. " 
     </strong></p>"; 
     echo "<p class='pad_bot1'>".$rows['des'] ."</p>"; 

     echo "</section>"; 
     echo "</div>"; 
    } 

} 
// Free result set 
mysqli_free_result($result); 

希望這有助於!

+0

不,甚至循環它,沒有幫助 –

0

//數字陣列

$row=mysqli_fetch_array($result,MYSQLI_NUM); 

//關聯數組

$row=mysqli_fetch_array($result,MYSQLI_ASSOC); 

因此,對於你的代碼,你需要改變:

$rows = mysqli_fetch_array($result); 

到:

$row=mysqli_fetch_array($result,MYSQLI_ASSOC); 

此外,你應該通過讀取前檢查的行數:

$rowcount=mysqli_num_rows($result); 

只有$rowcount大於0,您應該mysqli_fetch_array

+0

沒有幫助。沒有錯誤,也沒有o/p –

+0

希望你沒有用'$ row'和'$ rows'做任何拼寫錯誤,並且'echo'查詢,在你的MySQL客戶端執行它並檢查它是否真的有一些輸出。 –