ugrás a tartalomhoz

Miért nem masználja nekem az ORDER BY -t ? (nincs szintax hiba)

todwardus · 2007. Május. 10. (Cs), 20.44
Szia !


Itt van egy lekérdezésem, beleraktam az order by -t de érdekes módon nem rendezte, de ami még meglepőbb hibaüzenetet se hagyott !! Most így néz ki :


Itt van...kicsit összetettebb...Akár benne van az order by akár nincs, UGYAN AZ az eredmény, akár DESC-el akár ASC-el és hibaüzenetet NEM kapok !
  1. $pagingQuery = "";  
  2. $result = mysql_query("SELECT id, cat, title, uptime  
  3.            FROM table WHERE egyik_oszlop='bbb and masik_oszlop LIKE '%valami%'"   
  4.    <span style="font-weight:bold">ORDER BY 'uptime' DESC</span>       LIMIT 0, 50 ;  
  5.   
  6. while(list($id$name$address$age) = mysql_fetch_array($result))  
  7.     echo $id.$age ;  
köszi
 
1

nem véletlen :)

Sulik Szabolcs · 2007. Május. 10. (Cs), 21.05
A hiba az ön készülékében van.
1. egyik_oszlop='bbb - nem ártana lezárni
2. a query stringnek ott van vége, ahol a ", vagyis LIKE '%valami%'" (se az order by, sem a limit nincs benne és a mysql_query() sem kerek).

Ezért nem tudja masználni az order by-t. :)
4

abc

todwardus · 2007. Május. 11. (P), 15.23
Látom, így nem sokra megyek, itt a teljes szkript, a fenti csak egy leegyszerüsített változat akart lenni csak siettem és lehagytam néhány idézőjelet...na itt van a teljes lekérdezés
  1. if($bbb == "")  
  2. {        $tipusszerint = "";                            }  
  3. else{    $tipusszerint = "WHERE cat='".$bbb."'";        }  
  4.   
  5.   
  6. if ($ccc != "")  
  7. {  
  8.     if ($bbb == "")  
  9.     {      $keresdmeg = "WHERE title LIKE '%".$ccc."%'" ;    }  
  10.     else{  $keresdmeg = " and title LIKE '%".$ccc."%'"  ;    }  
  11. }  
  12. $rowsPerPage = 50;  
  13.   
  14. $pageNum = 1;  
  15.   
  16. if(isset($_GET['page']))  
  17. {  
  18.     $pageNum = $_GET['page'];  
  19. }  
  20.   
  21. $offset = ($pageNum - 1) * $rowsPerPage;  
  22.   
  23. $query  = "SELECT id, cat, title, uptime  
  24.            FROM $aaa ".$tipusszerint.$keresdmeg." ORDER BY 'uptime' DESC ";  
  25.   
  26. $pagingQuery = "LIMIT $offset, $rowsPerPage";  
  27. $result = mysql_query($query . $pagingQueryor die('Error, query failed');  
  28.   
  29. while(list($id$name$address$age) = mysql_fetch_array($result))  
  30. {  
  31.     echo "  
  32. //kiiratom tábláztba  
  33.   
  34.     ";  
  35. }  
Így bonyultabb lett...de legalább az egészet látjátok. A limit a $pageNum és a $_GET['page'] azért kell mert oldalanként íratom ki...a $ccc pedig keresésre szolgál...talán így érthetőbb..
A szitu még mindig ugyan az ORDER BY nélkül tökéletesen működik, ha belerakom...akkor semmi változás...ugyanúgy működik...
2

ORDER BY uptime

Rici · 2007. Május. 10. (Cs), 21.26
Ne tedd idézőjelbe az uptime-ot az ORDER BY után.

Így ugyanis nem az uptime oszlop, hanem az 'uptime' sztring szerint rendez, ami minden sorban ugyanaz, tehát nem változtat a sorrendben.
3

helyes apostróf

decker · 2007. Május. 10. (Cs), 22.39
' helyett használj ` -t
5

Köszi

todwardus · 2007. Május. 11. (P), 15.50
Csáó!
Kiváló ötlet...ez volt a probléma...Nagyon szépen köszönöm Rici!