İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

MySQL: Group by kullanmadan önce ORDER by kullanımı

Loi

0
İyinet Üyesi
Katılım
13 Kasım 2006
Mesajlar
6,192
Reaction score
44
Konum
localhost
Ne alaka diyenler olabilir kısaca özetleyeyim..

Şöyle bir tablo var elimde
+---+--------+--------+---------------------+--------+
+ id | name | score | date_submitted | departman |
+---+--------+--------+---------------------+--------+
| 1 | ali | 304095 | 2010-06-15 22:58:02 | 1 |
| 2 | veli | 247126 | 2010-06-15 21:25:31 | 1 |
| 3 | deli | 166021 | 2010-06-15 21:25:31 | 2 |
| 4 | heli | 82303 | 2010-06-15 11:38:39 | 2 |
+--------+--------+---------------------+---------+

Bu tabloya göre, çalışanları score değer en yüksekten başlayarak departmana göre gruplamak ve ID sırasına göre dizmek istiyorum..

Nasıl yaparız :)
 

Caesar

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
7
PHP:
function data() {
$sorgu=mysql_query("select * from tablo");
$say=0;
while ($oku=mysql_fetch_array($sorgu)) {
      $data[$say]['id']=$oku['id'];
      $data[$say]['name']=$oku['name'];
      $data[$say]['date_submitted']=$oku['date_submitted'];
      $data[$say]['departman']=$oku['departman'];

 $say++;
}

return $data;
}

PHP:
$data=data();

 $templevel=0;   

  $newkey=0;

  $grouparr[$templevel]="";

  foreach ($data as $key => $val) {
   if ($templevel==$val['departman']){
     $grouparr[$templevel][$newkey]=$val;
   } else {
     $grouparr[$val['departman']][$newkey]=$val;
   }
     $newkey++;       
  }
print_r($grouparr);

olarak denermisin.

PHP:
print_r($grouparr[1]);
Mesela sadece departman 1 i göstermesi lazım.
 

Loi

0
İyinet Üyesi
Katılım
13 Kasım 2006
Mesajlar
6,192
Reaction score
44
Konum
localhost
Teşekkürler Caesar,
Kod:
SELECT * FROM (select * from `tablo` order by score desc) as tablo_tmp group by departman ORDER BY id ASC
ile çözdüm.
 

Caesar

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
7
Teşekkürler Caesar,
Kod:
SELECT * FROM (select * from `tablo` order by score desc) as tablo_tmp group by departman ORDER BY id ASC
ile çözdüm.

OMG çok yorarsın tabloyu bu şekilde. Veriler arttıkça problem yaratır. Çift sorgu ile yapsan daha mantıklı şunu kullanacağına.
 

Loi

0
İyinet Üyesi
Katılım
13 Kasım 2006
Mesajlar
6,192
Reaction score
44
Konum
localhost
query_cache acik, birde html kodlarının ciktisini cache alan bisey ekleriz sıkıntı olmaz.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst