2017-08-08 10 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

以下のようにきれいなテンプレートを作ることができますが、接続がDBへ作ります。 –

+0

はい、まだ出力がありません –

答えて

0

のためには、あなたが$_SESSION内のリソースハンドルを格納することはできません$conn=$_SESSION['conn'];

をコメントしました。 PHP.netを参照してください。

一部のタイプのデータをこのようにセッションに格納することはできません。 には、循環参照を持つリソース変数またはオブジェクトが含まれています(つまり、別のオブジェクトに参照を渡す オブジェクト)。

オブジェクトには接続リンクが含まれているため、シリアル化することはできません。すべての要求に再接続するだけです。 SQLを選択する前に

そして、あなたは

<!-- 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クライアントで実行し、出力。 –

関連する問題