2010-04-18 6 views
1

j'ai une requête SQL qui retourne plusieurs lignes, et j'ai:tableau PHP: simple question sur tableau multidimensionnel

$data = array(
    "nom" => $row['nom'] , 
    "prix" => $row['rapport'], 
    "average" => "$moyenne_ge" 
); 

qui est parfait, mais seulement si ma requête renvoie une ligne.

i essayé:

$data = array(); 
$data[$row['nom']]["nom"] = $row['nom'] ; 
... 
$data[$row['nom']]['average'] = "$moyenne_ge"; 

afin d'avoir:

$data[brand1][nom] = brand1 
$data[brand1][average] = 150$ 
$data[brand2][nom] = brand2 
$data[brand2][average] = 20$ 
... 

mais quand je fais: json_encode($data)

j'ai seulement le dernier objet JSON au lieu de tous les objets JSON de ma demande comme si mon tableau n'a qu'une seule marque au lieu de 10.

Je suppose que j'ai fait quelque chose de stupide quelque part. Merci pour votre aide

+0

Pouvez-vous montrer un peu plus de code? Je suppose que vous avez une boucle quelque part, cela aiderait à le voir. – deceze

Répondre

2

Je suppose que votre ligne:

$data = array(); 

initialise le tableau à chaque itération de la boucle. Vous n'accumulez pas plus d'une ligne de données.

+0

merci pour votre temps;) –

1

je suppose que quelque chose comme cela devrait fonctionner pour vous:

$resource = mysql_query("YOUR QUERY"); 
$results = array() 

while($result = mysql_fetch_assoc($resource)) { 
    $results[$result['brand']] = array(
     'nom' => $result['nom'], 
     'prix' => $result['rapport'], 
     'average' => $moyenne_ge 
    ); 
) 

$results contient maintenant toutes les lignes de la requête indexée par brand. Demandez dans les commentaires si ce n'était pas ce que vous cherchez.

+0

je pourrais avoir du travail, mais ce n'est pas, j'ai trouvé une autre solution, merci d'aider;) –

1

Si je vous en train de lire, vous devriez juste avoir à faire quelque chose comme ceci:

$data[] = array(
    "nom" => $row['nom'] , 
    "prix" => $row['rapport'], 
    "average" => "$moyenne_ge" 
); 

(remarquez le [])

Cela devrait ajouter chaque tableau sur les données $ au lieu de remplacer le contenu .

+0

merci, votre solution est similaire à la précédente et il a travaillé –

Questions connexes