• 02-03-2008, 16:35:57
    #1
    Merhaba
    Veritabanından çektiğim verileri matmatiksel işlemden geçirdikten sonra sıralamak istiyorum. Sanırım bunu sort ile yapacağım ama işin içinden çıkamadım. Yardımcı olursanız sevinirim.
     $bilinc ="Select alim,verim,durum  FROM tablom ORDER BY durum DESC LIMIT 0,10";
     $erg1 = mysql_db_query($veritabani,$bilinc,$sonuc);
      							echo "<table table border=0>";
     			while (list($alim,$verim,$durum,) = mysql_fetch_row($erg1)) {
                			$a = $alim;
    $b = $durum;
    $c = pow($b,2); 
    $d = $c+$a; 
                    echo "<tr><td><font size=3><b>X Bilinc: </b></font></td><td> <a href=http://$verim.com target=_blank><font color=#0000FF><style=\"text-decoration: none\"><font size=3>$verim</font></a></td><td><font size=3> -<b> $d Puan</b>  \n";
    }
    Buraya kadar gelebildim. Bu şekilde bildiğiniz üzere veritabanından durum sayısına göre veri çekiyor.
    Ben $d verisindeki elde edilen sayıların büyükten küçüğe sıralanmasını istiyorum.
    Yardım edebilecekler varsa sevinirim.
    Şimdiden teşekkürler
  • 03-03-2008, 18:22:41
    #2
    eğer çok zor ise ücertli de yaptırabilirim?
  • 03-03-2008, 18:55:40
    #3
    $verim ve $d değerlerini farklı iki diziye at. Daha sonra $d değerlerini attığın diziyi arsort() ile sıralat. Daha sonra yeni $d dizisine göre foreach döngüsü aç, $verim dizisini ve $d dizisini yazdır.
  • 13-03-2008, 20:31:36
    #4
    arsort ile olmuyor ne yazık ki? Başka bir sort fonksiyonu olabilir mi?
  • 13-03-2008, 20:53:48
    #5
    arsort ile sıralama yaparsan dizinin anahtar kısmı değişmiyor .. Senin için de böyle bir fonksiyon lazım ..

    PHP: asort - Manual
  • 22-03-2008, 18:07:35
    #6
    geçici bir table daha açıp oraya yükledikten sonra tekrar okutabilirsin ama buda database'i zorlar ama çözüm...
  • 22-03-2008, 18:30:11
    #7
    $bilinc ="Select alim,verim,durum  FROM tablom ORDER BY durum DESC LIMIT 0,10"; 
    $erg1 = mysql_db_query($veritabani,$bilinc,$sonuc); 
    
    echo "<table table border=0>"; 
    
    while (list($alim,$verim,$durum,) = mysql_fetch_row($erg1)) { 
    $a = $alim; 
    $b = $durum; 
    $c = pow($b,2);  
    $d[] = $c+$a;
    $e[] = $verim;
    }
    $d = asort($d);
    for($z=0;$z<count($e);$z++){
    echo "<tr><td><font size=3><b>X Bilinc: </b></font></td><td> <a href=http://$verim.com target=_blank><font color=#0000FF><style=\"text-decoration: none\"><font size=3>$verim</font></a></td><td><font size=3> -<b> $d Puan</b>  \n"; 
    }
    Denermisiniz?
  • 22-03-2008, 19:14:23
    #8
    Teşekkür ederim Ghost_Boy

    Verdiğin kodlara benzer foreach döngüsü ile sorunu çözmüştüm.

    Yine de il gösterdiğin için sağol