2017-10-21 8 views
1

get_post.phpPHP: obtenir objet multiple dans la base de données JSON mysql

<?php 
require_once 'database_config/DbOperations.php'; 

$response = array(); 

if($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    $location = $_POST['location']; 

    $db = new DbOperations(); 

    $post = $db->getPostByLocation($location); 

    $response['id'] = $post['id']; 
    $response['name'] = $post['name']; 
    $response['gender'] = $post['gender']; 
    $response['dob_year'] = $post['dob_year']; 
} 

echo json_encode($response); 

?> 

ObOperations.php

public function getPostByLocation($location) 
    { 
     $stmt = $this->con->prepare("select * from table_post where location = ?"); 
     $stmt->bind_param("s", $location); 
     $stmt->execute(); 

     return $stmt->get_result()->fetch_array(); 
    } 

Salut, ce que je suis en train de faire est d'obtenir des objets JSON pour toutes les données a une certaine donnée de localisation. Quand je tape New Jersey, alors il devrait obtenir des objets pour toutes les données qui ont des données de localisation "New Jersey". Mais, il imprime seulement une donnée. Comment puis-je obtenir toutes les données au format json. ObOperations a la fonction getPostByLocation et cela fonctionne correctement.

Merci!

Répondre

0

Si vous faites vous venez d'obtenir la première rangée, vous devez utiliser while boucle pour retriver toute la ligne, par exemple.

<?php 
public function getPostByLocation($location) 
{ 
    $stmt = $this->con->prepare("select * from table_post where location = ?"); 
    $stmt->bind_param("s", $location); 
    $stmt->execute(); 

    $data = array(); 
    $result = $stmt->get_result(); 
    while($row = $result->fetch_array()) 
    { 
     $data[] = $row; 
    } 
    return $data; 
} 
+0

Merci, mais après avoir ajouté cela, les impressions JSON null pour tous les éléments – Eric

+0

Ensuite, vous 'post' de $ devrait recevoir un tableau, nous allons' print_r' dehors pour voir ce qu'il contient –

+0

print_r ($ post) N'imprime rien. – Eric