2016-05-24 9 views
-2

私の質問に関連するほとんどの記事を読みましたが、私の単純な問題を解決することはできません。1つの列テーブルを配列に入れます

PHPとMySQLiを使用して私のサーバからデータを取得しています。

私のデータベースには1次元のテーブル(つまり1つのカラムのみ)があり、そのデータを配列内に入れたいと思います。

私は私のserver.thisからデータを保持するためにJSONを使用していた今までの私のコードです:

<?php 
include 'ChromePhp.php'; 
$con=mysqli_connect("197.168.240.100","jsoncloud","nuahyu,hs","json"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 

    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
ChromePhp::warn('Failed to connect to MySQL'); 

    } 

$sql="SELECT `street` FROM `users` "; 

$result=mysqli_query($con,$sql); 

$rows = array(); 
while ($row = mysqli_fetch_all($result,MYSQLI_ASSOC)) { 
    $rows[] = $row[0]; 

} 
echo json_encode($rows); 


// Free result set 
mysqli_free_result($result); 

mysqli_close($con); 
?> 

私の最終目標は、私は別のJSファイルにアヤックスでそれを使用できるようにバック配列をエコーすることです私は次のコードを持っている他のJSファイル内

$.ajax({ 
    type: 'POST', 
    url: 'js/SQLusersstreets.php', 
    dataType: 'json', 
    success: function(jsonData) { 
console.log(jsonData); 
    }, 
    error: function() { 
    alert('Error loading SQLusersstreets.php from GoogleMapsCode.js'); 
    } 
}); 

を、私は、ブラウザのデバッガを開いたときにこれが私の出力です:

Output

私は単純な配列を返そうとしていますが、何が間違っていますか?接続を想定すると、PDO

ため

+0

はこちらのドキュメントを参照してください。 –

+0

あなたは何かエラーがあったのですが、json_encodeと動作するかどうかわかりませんか?共有してください – Mohammad

+0

別のJSファイルでAjaxで使用できるように配列をエコーバックしたい – Json

答えて

-2

変更mysqliのがすでに確立されている、あなたはonly one line of code必要があります。

echo json_encode($pdo->query("SELECT `street` FROM `users`")->fetchAll(PDO::FETCH_COLUMN)); 

をしかし、あなたは多くのコードを書くことを好む場合は、

-1
をFETCH_ASSOCするfetch_allを変更します

これがあなたが尋ねるものであれば試してください:

for($i=0;$i<sizeof($rows);$i++){ 

    echo $rows[$i]['id']; //for example 
} 
+0

ありがとうございますが、私が探しているものではありません。 – Json

+0

@Json ok、問題はありませんが、詳細をあなたの問題を記述してください、私はあなたを取得しませんでした – Mohammad

+0

私のデータベースで私は1次元のテーブル(すなわち1つの列のみ)を持って、 。 コードを変更するにはどうすればよいですか?私は "エコーjson_encode($行);を置き換える必要があります他の声明と一緒に。 – Json

-1

mysqli_fetch_allはwhile($row = mysqli_fetch) {}のショートカットなので、whileサイクルをスキップできます。

$sql="SELECT DISTINCT `street` FROM `users` "; 

$result=mysqli_query($con,$sql); 

$rows = mysqli_fetch_all($result,MYSQLI_ASSOC); 
echo json_encode(array_map(function($i) { return $i['street']; }, $rows)); 

あなたがしますprint_r($ yourArr)を使用することができる配列をプリントアウトするためのより多くの例http://php.net/manual/en/mysqli-result.fetch-all.php

+0

です。 –

関連する問題