PHP dizi: boyutlu dizinin ilgili basit bir soru

3 Cevap php

Ben birden çok satır döndüren bir SQL sorgusu var, ve ben var:

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

which is perfect, but only if my query returns one row.

ben bu çalıştı:

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

sahip olmak için:

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

ama ne zaman: json_encode($data)

Benim dizisi 10 yerine sadece tek bir marka var sanki ben sadece benim istek son JSON nesnesi yerine, tüm JSON nesnesi var.

I guess i did something stupid somewhere. Thanks for your help

3 Cevap

Ben senin hat olduğunu tahmin ediyorum:

$data = array();

Eğer döngü her tekrarında dizisini başlatıyor. Verilerin birden fazla satır biriken değildir.

Böyle bir şey sizin için çalışması gerekir sanırım:

$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 şimdi brand tarafından endeksli sorgudan tüm satırları içerir. Bu sizin için ne arıyorsanız değildi görüşleri değildir.

Sana doğru okuyorum, sadece böyle bir şey yapmak zorunda olmalıdır:

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

(Fark [])

Bu yerine içeriği yazılmadan $ verilerin üzerine her dizi eklemeniz gerekir.