2017-12-28 8 views
-1

残念ながら私のコードはうまく動作していません。PHPがすべての値を正しく表示しないのはなぜですか?

ソースコード:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Query data from News database and display in table</title> 
    <meta charset="UTF-8"> 
    <meta name="description" content="" /> 
    <meta name="author" content="WRBikAir" /> 
    <meta name="keywords" content="" /> 
<style> 
    table, th, td{ 
     border: 1px solid black; 
    } 
</style> 
</head> 

<body> 
    <?php 
     error_reporting(E_ALL); 
     echo "Test 1"; 
     $con = mysqli_connect("mysql.hostinger.com","u441817146_admin","CBGApp","u441817146_cbg"); 
     if (mysqli_connect_errno()) { 
      echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 

     $sql = "SELECT * FROM News"; 
     if ($result = mysqli_query($con, $sql)) { 
      echo "<table>"; 
      while($row = $result->fetch_assoc()) { 
       $r = json_encode($row); 
       echo "<tr><td>" . $r['NID'] . "</td><td>" . $r['headline'] . "</td><td>" . $row['text'] . "</td><td>" . $r['timestamp'] . "</td></tr>"; 
      } 
      echo "</table>"; 
     } else { 
      echo "no result."; 
     } 
     mysqli_close($con); 
     echo "2"; 
    ?> 
</body> 
</html> 

すべてがNID、見出しとタイムスタンプの出力を除いて、正常に動作します。すべて '{'があります。今は価値があるということですか?たとえば、単純に(符号化された)値を印刷すると値があります。例:

{"NID":"1","headline":"Testartikel 2","text":"test test test","timestamp":"15.11.2017, 18:13"} 

誰かが解決策を知っていますか?

+5

2ワード: "エラー報告"。 –

+2

注:mysqliへのオブジェクト指向インタフェースは、コードの読み込みと監査を容易にし、陳腐化した 'mysql_query'インタフェースと簡単に混同しません。手続き型スタイルに多額の投資をする前に、それを切り換える価値があります。例: '$ db = new mysqli(...)'と '$ db-> prepare(" ... ")'手続き型インタフェースはmysqli' APIが導入されたPHP 4時代のアーティファクトであり、コード。別の2; – tadman

+2

; "mysqliエラー"。 –

答えて

0

MasterOfCoding、GrumpyCrouton、Paul Spiegel、prodigitalsonありがとうございます。 インサイダー情報のためのtadmanに特別なおかげです。今

コード:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Query data from News database and display in table</title> 
     <meta charset="UTF-8"> 
     <meta name="description" content="" /> 
     <meta name="author" content="WRBikAir" /> 
     <meta name="keywords" content="" /> 

     <style> 
      table, th, td{ 
       border: 1px solid black; 
      }  
     </style> 
    </head> 
    <body> 
     <?php 
      error_reporting(E_ALL); 
      echo "Test 1"; 
      $con = mysqli_connect("...","...","...","..."); 
      if (mysqli_connect_errno()) { 
       echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
      } 

      $sql = "SELECT * FROM News"; 
      if ($result = mysqli_query($con, $sql)) { 
       echo "<table>"; 
       while($row = $result->fetch_assoc()) { 
        echo "<tr><td>" . $row['NID'] . "</td><td>" . $row['headline'] . "</td><td>" . $row['text'] . "</td><td>" . $row['timestamp'] . "</td></tr>"; 
       } 
       echo "</table>"; 
      } else { 
       echo "no result."; 
      } 
      mysqli_close($con); 
      echo "2"; 
     ?> 
    </body> 
</html> 
0

$result = mysqli_query($con, $sql)とforeachループで$resultを2回使用しています。私はforeachループの1つを$resultの代わりに$resultsに変更しました。

また、使用してエラー報告をオンにしてみてください:

error_reporting(E_ALL); 

を使用してみてください:作業答えを必要とするすべての人のために

<!DOCTYPE html> 
<html> 
<head> 
<title>Query data from News database and display in table</title> 
<meta charset="UTF-8"> 
<meta name="description" content="" /> 
<meta name="author" content="WRBikAir" /> 
<meta name="keywords" content="" /> 

<style> 
    table, th, td{ 
     border: 1px solid black; 
    } 
</style> 
</head> 

<body> 
    <?php 
     echo "Test 1"; 
     $con = mysqli_connect(CENSORED (but working in other classes fine); 
     if (mysqli_connect_errno()) { 
      echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 

     $sql = "SELECT * FROM News"; 
     if ($result = mysqli_query($con, $sql)) { 
      $resultArray = array(); 
      $tempArray = array(); 
      while($row = $result->fetch_object()) { 
       $tempArray = $row; 
       array_push($resultArray, $tempArray); 
      } 
      echo "<table>"; 
      foreach ($resultArray as $results) { 
       $r = json_encode($results); 
       echo "<tr><td>" . $results['headline'] . "</td><td>" . $results['text'] . "</td></tr>"; 
      } 
      echo "</table>" 
     } 
     mysqli_close($con); 
     echo "2"; 
    ?> 
</body> 
</html> 
+0

まずはあなたの答えに感謝します。 –

+0

しかし、今は何も表示されません。 「テスト1」でさえない。空白のみ。私は "error_reporting(E_ALL);しようとしたエラーは表示されず、白いページのみが表示されます。 –

+0

データベース情報を追加しましたか? – DeadManWalking

関連する問題