2010-12-03 12 views
0

j'ai récupéré les données de MySQL d'une table en JSON en utilisant le script suivantcomment extraire des données de MySQL en JSON en utilisant php

 
$table_first = 'abc'; 
$query = "SELECT * FROM $table_first"; 
$resouter = mysql_query($query, $conn); 

$set = array(); 

$total_records = mysql_numrows($resouter); 
if($total_records >= 1){ 

    while ($link = mysql_fetch_array($resouter, MYSQL_ASSOC)){ 
    $set[] = $link; 
    } 
} 

echo json_encode($set); 

Comment puis-je récupérer des données à partir de deux autres tableaux dans lesquels il y a une clé étrangère de cette table dans ces deux tableaux. OU simplement comment puis-je récupérer des données à partir de 3 tables mysql en php.

Répondre

0

Vous pouvez obtenir toutes les données en premier. Fusionnez ensuite le tableau de données. Enfin, utilisez json_encode pour modifier le format de données.

0

Il existe une clé étrangère de cette table dans les deux afin que vous puissiez utiliser "join" pour extraire des valeurs d'autres tables.

1

je crois que la meilleure façon d'aller ici utilise un JOIN ou quelque chose comme ceci:

$sql = "SELECT 
      tabl1.*, table2.*, tabl3.* FROM table1, table2, table3 
     WHERE 
      table1.fk1 = table2.id AND 
      table1.fk2 = table2.id"; 

//Do the whole selection process... 

Si vous faites les requêtes séparément, vous serez forcer 3 requêtes sur votre base de données et prendra fin en un coup de performance dont vous n'avez pas besoin. Ainsi, l'idée est de charger toutes les données de la base de données en utilisant des jointures ou similaires, puis d'encoder les résultats. Plus rapide, vous quitterez le travail de fusion à MySQL

Espoir je peux aider

+0

merci mais cette requête a récupéré tout le dossier à la fois et ce que je veux faire c'est qu'il ne devrait imprimer que les enregistrements pertinents ie pour id 1 du tableau 1 il y a 5 enregistrements pertinents dans le tableau 2 et trois enregistrements du tableau 3 Premièrement, il devrait imprimer l'identifiant 1 du tableau 1 que tous les 5 enregistrements du tableau 2 et du tableau 3. Pour l'identifiant 2 du tableau 1, il devrait être identique à – hunter

+0

, donc devrais-je utiliser trois requêtes, mais comment puis-je gérer toutes les trois requêtes et envoyer à json_encode. – hunter

0

On suppose qu'il ya deux tables en tant qu'Etat (st_id, STjiame) et Ville (CT_ID, ct_name, state_id). Maintenant, la clé primaire est st_id & ct_id respectivement des tables État & Ville.

La connexion entre ces deux tables peut être établie en rejoignant State.st_id et City.state_id.

Maintenant, venir à votre problème pour récupérer des données à partir de deux tables État & City, nous pouvons faire requête SQL comme suit,

$sql="select s.*, c.* from State s, City c 
     where s.st_id=c.state_id "; 

L'utilisation ci-dessus requête, vous pouvez récupérer les données de base de données et convertir en format JSON et peut l'envoyer au système android. Voici un bon article http://blog.sptechnolab.com/2011/02/10/android/android-connecting-to-mysql-using-php/. J'espère que tu aimes.

0

je crois que votre code ressemblera à peu près ceci:

$query = "SELECT 
     A.column1 AS First_1 
     A.column2 AS First_2 
     B.column2 AS Second 
     C.column3 AS Third 
     FROM table1 A, table2 B, table3 C 
    WHERE 
     A.fk1 = B.id AND 
     B.fk2 = C.id"; 

où une colonne est un dossier pertinent que vous voulez afficher. Pendant ce temps, AS agira comme un nom de clé dans JSON.