2016-02-27 7 views
7

データベースからの予約を表示するには、以下のhteコードを実行すると上記のエラーが表示されます。メンバー関数の呼び出し<path>

<?php 

      $servername = "localhost"; 
      $username = "*********"; 
      $password = "********"; 
      $dbname = "thelibr1_fyp"; 


      // Create connection 
      $conn = new mysqli($servername, $username, $password, $dbname); 
      // Check connection 
      if ($conn->connect_error) { 
       die("Connection failed: " . $conn->connect_error); 
      } 

      $sql = "SELECT id, tablename, numseats, person FROM confirms"; 
      $result = $conn->query($sql); 
      ?> 

      <table id="Confirms" border ="2" style="length:900px;width:350px;"> 
        <thead> 
        <tr style= "background-color: #A4A4A4;"> 
         <td>Booking ID:</td> 
         <td>Table No.:</td> 
         <td>No. of Seats:</td> 
         <td>Person:</td> 
        </tr> 
        </thead> 
       <tbody> 
        <?php 
         while(($row = $result->fetch_assoc()) !== null){ 
         echo 
         "<tr> 
          <td>{$row['id']}</td> 
          <td>{$row['tablename']}</td> 
          <td>{$row['numseats']}</td> 
          <td>{$row['person']}</td> 
         </tr>\n"; 
         } 
        ?> 
       </tbody> 
      </table> 

私はライブをホストし始めたときにエラーが発生しました。パーソナルコンピュータで正常に動作しました。また、データベース接続も正常に動作します。

+0

あまりにも同じ問題を試してみました。 – dhool

+0

私はあなたのコードを試しました、私のために働いて、あなたのデータベースとクエリをチェックしますか? – C2486

+0

の後に出力されている出力$ result = $ conn-> query($ sql); print_r($ result); – C2486

答えて

-1

whileループで試してみてください。

例えば、

if ($result = $conn->query($query)) { 

    /* fetch associative array */ 
    while ($row = $result->fetch_assoc()) { 

    } 
    /* free result set */ 
    $result->free(); 
} 
+0

私はあなたの提案を徹底的に吟味して、エラーを取り除いても出力は出力されておらず、出力されるのは間違いなくデータベース内のエントリです。 – dhool

8

クエリ方法は、エラーが発生した場合には、結果セットの代わりに、falseを返すことができます。そのため、fetch_assocメソッド呼び出しでエラーが発生するのは、$結果falseの場合は明らかに存在しません。

これは、SELECTステートメントにエラーがあることを意味します。表示されたそのエラーを取得するには、次の操作を行います。

$result = $conn->query($sql) or die($conn->error); 

は、おそらくあなたは、テーブル名や列名の間違ったスペルを持っています。たぶん、ホストに移動するときに、そのテーブルを正しく作成せず、そこでスペルミスを犯しました。

phpAdminで同じクエリを実行すると、実際に同じエラーが表示されるはずです。あなたはphp.iniのを更新する必要が

echo "number of rows: " . $result->num_rows; 
+0

OKだから間違ったデータベース名にリンクしていたのを助けてくれましたが、出力は出力されていないという点で同じでした。 "or die($ conn-> error)"は何も返されませんが、なぜエントリが表示されないのか混乱してしまいます。 – dhool

+0

phpAdminで直接SELECTを実行したときの出力(正しいサーバーにいることを確認してください)は何ですか? – trincot

-1

:だけで

while(($row = $result->fetch_assoc()) !== null){ 

while($row = $result->fetch_assoc()) { 

あなたはまた、デバッグのためにこれを追加することができます。また

、この行を置き換えますあなたのホストプロバイダのサーバにconfigファイルを置いて、これを信頼してください。あなたのコードに何も問題はありません。ほとんどのホスティングサーバーはphp.iniファイルで最新のものではないことに気がついたのは、およそ1ヶ月半でした。 PHP 5.5以降、私は信じています。

0

は、この次のコードは、そのようなあなたのコードを.edit参照してください。

$query="select * from articles"; 
    $result=$conn->query($query); 
    $row = $result->fetch_assoc(); 
    if($row) 
    { 
    echo $row['content']; 
    } 
echo "no results founded"; 
    ?> 
関連する問題