0

選択したすべてのデータを mysql テーブルから返そうとしています。私が欲しいのは、データを配列で返して、それをjsonデータとして表示することです。これまでのところ達成できましたが、そのmysqlデータを返す方法がわかりません。

public function getHome() {
    $result = mysql_query("SELECT * FROM places") or die(mysql_error());
    // check for result
    $no_of_rows = mysql_num_rows($result);
    if ($no_of_rows > 0) {
        while($row = mysql_fetch_array($result)) {
            $data[] = $row;
        }
        return $data;
    } else {
        // user not found
        return false;
    }
}

ここでこのメソッドを呼び出しています

if($db->getHome()) {
        $data = $db->getHome();
        $response['success'] = 1;
        $response['uid'] = $data['uid'];
        $response['name'] = $data['name'];
        $response['profile_photo'] = $data['profile_photo_path'];
        $response['places']['place_photo'] = $data['place_photo_path'];
        $response['places']['created_at'] = $data['created_at'];
        echo json_encode($response);
    } else {
        echo "bye";
    }

これが反響するものです

{"tag":"home","success":1,"error":0,"uid":null,"name":null,"profile_photo":null,"places":{"place_photo":null,"created_at":null}}
4

1 に答える 1

3

コードがきれいに見えることに加えて、最初に $data を配列として定義する必要があります。

$data = array();

あなたがそうであるように、潜在的に複数の行を返す場合は、次のようなことをする必要があります:

$data = $db->getHome(); // There's no need to call this twice
if($data) {
  foreach($data as $place) {
    // Do what you need to do with each place here
  }
}

$data の内容を見てみましょうprint_r($data);

于 2012-06-02T11:15:26.983 に答える