Satır sayısına göre sipariş?

2 Cevap php

Tamam, bu yüzden bir süre döngü MySQL tablodan bir tablo çıktısı veri var. Peki bu çıkışları sütunlardan biri yerine onu bir different MySQL tablosunda görünen kaç kere toplamı değil, tabloda statik saklanmaz.

Üzgünüm, bu kolay anlaşılır olduğundan emin değilim. İşte benim kod:

    $query="SELECT * FROM list WHERE added='$addedby' ORDER BY time DESC";
    $result=mysql_query($query);
    while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
$loghwid = $row['hwid'];

$sql="SELECT * FROM logs WHERE hwid='$loghwid' AND time < now() + interval 1 hour";
$query = mysql_query($sql) OR DIE(mysql_error());
$boots = mysql_num_rows($query);

//Display the table
    }

Yukarıdaki tablo göstererek kodudur.

Gördüğünüz gibi iki farklı MySQL tablodan verileri kapma oluyor. Ancak ben ORDER BY $boots DESC edebilmek istiyorum. Ama tamamen farklı bir tablo onun bir sayma gibi, ben o yapıyor hakkında gitmek nasıl hiçbir fikrim yok.

Ben herhangi bir yardım takdir ediyorum, teşekkür ederim.

2 Cevap

Birlikte için ... iyi ... join, iki farklı tablo amaçlanan bir JOIN işlemi yoktur.

SELECT list.hwid, COUNT(log.hwid) AS boots 
FROM list WHERE added='$addedby'
LEFT JOIN log ON list.hwid=log.hwid
GROUP BY list.hwid
ORDER BY boots

I ORDER BY boots son satırda MySQL bu gibi çalışacak emin değilim. Eğer bu olmuyorsa, sadece bir alt sorguda son satırında ama tüm koydu.

Ama $ botlar tarafından endeksli bir diziye sorgu sonucu.

AKA:

while(..){
    $boot = mysql_num_rows($query);
    $results[$boot][] = $result_array;
}
ksort($results);
foreach($results as $array)
{
    foreach($array as ....)
    {
          // display table
    }

}

Sen ksort arasında geçiş yapabilirsiniz ve krsort emir geçmek için, ama temelde tarafından bu diziyi sıralama, $boot içinde sayısına göre anahtarlı bir dizi yapıyoruz bu sayı, ve daha sonra belirli bir $boot değeri var kayıtların her grup geçme.