php sorgu sonucu sıralamak nasıl?

2 Cevap php

Ben tür sorgu, bir diziye neden çalışıyorum.

Ben sorguyu şu var.

"select s.*, a.* from students left join addresses as a";

döndürür

s.id
s.name
a.id
a.student_id
a.address

Ben s ve tuşları ile bir diziye yukarıdaki sonucu yapmak istiyorum.

array(
  "s"=>array("id"=>"value","name"=>"value")
  ,"a"=>array("id"=>"value","student_id"=>"value","address"=>"value)
)

Ben kendi işlevi bunu yapmak için yapmak zorunda ya da dahili bir fonksiyon var mı?

2 Cevap

Kenara: In your current code I believe s.id will get overwritten by a.id if you select rows as associative arrays.

Şimdi, olası bir yaklaşım üzerine ...

Sonuçlar döndürülür nasıl bir yönü sütun geldiği tabloyu kaybetmek. Kendinizi resultset post-işlem yapmak isteyen bulursanız, belki de bu yüzden gibi yeniden adlandırarak, her sütun diğer ad olabilir:

$query = "SELECT
    s.id         AS s_id
    s.name       AS s_name
    a.id         AS a_id
    a.student_id AS a_student_id
    a.address    AS a_address
    ... ";

Eğer substr ($ anahtar, 0,1) dayalı verileri düzenlemek ve substr ile "yatan sütun adını alabilirsiniz sahip olduktan sonra ($ tuşu, 2).

Eğer çalışmak istediğiniz veri yapısını oluşturmak için her satır içinde döngü olabilir bu var bir kere.

Masa dışında başka bir nedenle sorgu sonucu gelen PHP tanımlanabilir değilse kendiniz yapmak zorunda. Sadece sütun adı olsun.