Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sortowanie - nie działa
Forum PHP.pl > Forum > PHP
tara
ok, to wyciaga z bazy info:
  1. <? for($i="0"; $i <= $zdjeca_ra; $i += 1) {
  2.  
  3. $wynik = mysql_query("SELECT * FROM galeria WHERE id_galerii='$klasa' AND id='$i' ");
  4.  
  5. while ($rekord=mysql_fetch_row($wynik)) {
  6.  
  7. >?
  8. ?>


no i chciałbym zeby sortowało wg. id ale ORDER by id DESC nie daje rady (pusto). ma ktoś jakieś prozpoycje ? bo kompletnie nie wiem co zrobić, moze jakoś zmienić kod ?
babejsza
Nie do końca rozumiem o co Ci chodzi, ale masz tu kod:

  1. <?  
  2. $order = "id DESC";
  3.  
  4. for($i=0; $i <= $zdjeca_ra; $i++) {
  5.          
  6.    $wynik = mysql_query("SELECT * FROM galeria WHERE id_galerii='$klasa' AND id='$i'  ORDER BY '$order'");
  7.  
  8.       while ($rekord=mysql_fetch_row($wynik)) {
  9.          echo $rekord[0]."<br>";
  10.       }
  11. }
  12. ?>


Jeżeli nie działa (nie drukuje, żadnych danych) to znaczy, że nie ma w bazie danych o które prosisz. Możesz jeszcze ew. wstawić w drukiej pętli echo mysql_error();. Może coś nie tak z nazwami.

No i jeszcze pytanie jak przypisujesz wartość do $zdjeca_ra (i czy nie ma tu literowki:z djeca_ra -> zdjecia_ra). Zrób poza pętlami echo $i; Może pętla się nie wykonuje questionmark.gif
mike
Identyfikatory id oraz id_kategorii to zapewne liczbny a dokładniej integer.
Dlaczego są więc w apostrofach? Baza traktuje je w ten sposób jako stringi.
SongoQ
Cytat
Dlaczego są więc w apostrofach? Baza traktuje je w ten sposób jako stringi.

Wlasnie z tym roznie bywa. Bo i tak jest niejawna konwersja do typow tekstowych a w bazie do wlasnych typow. Troche sytuacja sporna ale nigdzie nie jest napisane dla jakiej bazy jak wstawiac. Bezpieczniej ''. Np w PG jesli nie podasz w bazie jekiego ma byc typu domyslnie rzutuje sobie do ::varchar
babejsza
W bazie tak, ale dla parsera to co było tu w kodzie jest bez sensu. Bo co miałby zrobić gdyby napotkał takie "obliczenie":

$a = "napis";
$a += 1; lub $a++;
nospor
ja tez nie czaje oco biega autorowi topicu, a konkretnie co rozumie przez pojęcie
Cytat
ale ORDER by id DESC nie daje rady (pusto).
Pewnie masz blad skladni i pluje errorami zamiast wynikami winksmiley.jpg

Piszę, by poprawic kod babejszy, który mu za bardzo nie wyszedl, amianowicie to:
  1. <?php
  2. $order = "id DESC";
  3. //......
  4.  $wynik = mysql_query("SELECT * FROM galeria WHERE id_galerii='$klasa' AND id='$i' ORDER BY '$order'");
  5.  
  6.  
  7. ?>
a konkretnie to: ORDER BY '$order'");
Przeciec teraz powstanie takie zapytanie: ..... order by 'id DESC'
To zapytanie bedzie sortowalo rekordy po tekscie 'id DESC', co w rezultacie da ze ich nie posortuje. musi byc .... order by id DESC, czyli bez ''
  1. <?php
  2. $order = "id DESC";
  3. //......
  4.  $wynik = mysql_query("SELECT * FROM galeria WHERE id_galerii='$klasa' AND id='$i' ORDER BY $order");
  5.  
  6.  
  7. ?>
A tak wogole to po co ta zmienna $order? Nie mozna od razu do zapytania wstawic bez tej zmiennej ? smile.gif
SongoQ
Moze zamiast $order autor wstawia wartosc nie bedaca nazwa pola wtedy to juz jest inny problem. Gdzies w manualu sa przyklady do takiego zastosowania.
babejsza
Cytat(nospor @ 2006-04-05 08:25:18)
a konkretnie to: ORDER BY '$order'");

true smile.gif Mój błąd winksmiley.jpg A co do wstawiania do zmiennej to kwestia przyzwyczajenia. Zwykle tak robię, żeby potem móc sortować wyniki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.