2016-04-02 25 views
-1

MAMP PhpMyAdminに「employees」という名前のmysqlテーブルが格納されています。構造Iは、ブラウザ上でJSONオブジェクトと表示としてデータを取得するPHPコードを有するJSONオブジェクトとしてデータを取得できません

  • 従業員(ID、名前の場所)

    あります。しかし、私はそれを実行すると、すべての値が「NULL」です。ここ

は私のスクリプトです:json_encoded文字列をエコーするためにあなたの試みる前

<?php 
// Enter username and password 
$username = root; 
$password = root; 

// Create database connection using PHP Data Object (PDO) 
$db = new PDO("mysql:host=localhost;dbname=movies", $username, $password); 

// Identify name of table within database 
$table = 'employees'; 

// Create the query - here we grab everything from the table 
$stmt = $db->query('SELECT * from '.$table); 

// Close connection to database 
$db = NULL; 

$result = array(); 

while($rows = $stmt->fetch()){ 
    array_push($result, array('name' => $row[0], 
           'location' => $row[1])); 
}; 

echo json_encode(array('result' => $result)); 

?> 
+0

whileループの中では、あなたが使用した変数に従って行[0]ではなく行[0]でなければなりません。 –

+0

'$ username'と' $ password'に引用符がありません。 –

答えて

0

問題は、間違ったPDO機能を使用していることです。複数の行を取得するためにあなたは(フェッチ、PDO::fetchAll()を使用する必要がない):

$rows = $db->query('SELECT name,location from employees')->fetchAll(PDO::FETCH_ASSOC); 
echo json_encode($rows); 

はあなたが必要とするすべてのコードです。あなたのwhileループ内の間違った変数名を使用している

-1

、あなたはどんな結果がから返されているかどうかを確認する必要がありますデータベースはまったくありません。してみてください

echo "<pre>"; 
print_r($result); 
echo "</pre>"; 

$result変数に何も表示されない可能性があります。しかし、それが空ではないと考えると、jsonはnullのデータにエンコードしようとしている可能性があります。UTF-8はエンコードされていません。

0

、以下を参照してください

while($rows = $stmt->fetch())

そして...あなたのループ内:

array_push($result, array('name' => $row[0], 'location' => $row[1]));

$row = $stmt->fetch()$rows = $stmt->fetch()を変更してみてください。

関連する問題