yanlış sırayla mysql_fetch_array dönen sonuçları

1 Cevap php

Ben aşağıdaki kodu vardır:

    $sortorder = $_GET['sort'];
switch($sortorder)
{
 case "modulea":
   $result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleanmodule` ASC");
 case "moduled":
   $result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleanmodule` DESC");
 case "typea":
   $result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleantype` ASC");
   var_dump($result2);
 case "typed":
   $result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1 ORDER BY `cleantype` DESC");
 default:
   $result2 = db_query("SELECT * FROM {vanqueue_registrations} WHERE isactive=1");
}
while($result = mysql_fetch_assoc($result2))
{
 var_dump($result);
 $value .= "<tr><td><center>" . $result['cleanmodule'] . "</center></td><td><center>" . $result['cleantype'] . "</center></td><td><center>" . $directions[$result['direction']] . "</center></td></tr>";
}

Gördüğünüz gibi, bir GET değişkeni alır ve onun değerine bağlı olarak, belirli bir sorgu yürütür. (Açıkçası daha sonra girişini doğrulamak edeceğiz, bu sadece test ediyor kod Merak etmeyin.)

Benim sorun: Doğru sorgu yürütülürken, ama mysql_fetch_assoc istemiyorum bir şekilde satırları yeniden sıralama gibi görünüyor.

I typea dava ile test 'm ve ben sayfayı çalıştırdığınızda, bu çağrı var_dump yürütülür - Ben sayfasında sonucu görebilirsiniz. Yani anahtarı kesinlikle çalışıyor.

Ancak, var_dump while deyimi içinde, benim istek başına değil, tarafından, cleantype tablodaki birincil anahtarı tarafından sipariş satırları çıktısı.

Nasıl mysql_fetch_assoc çıkış satırlar onları emretti istediğiniz şekilde yapabilirsiniz?

TIA.

1 Cevap

Tüm vakaların sonunda break kullanmayı unuttum ...

Bu nedenle, default sorgu her zaman son idam var.