Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Odwrocenie sortowania w petli for (DESC)
Forum PHP.pl > Forum > Przedszkole
Volume
Próbuje posortowac wg przypisanego id wartosci od tylu - czyli od ostatniego rekordy w bazie. Probuje zastosowac przy tym:
  1. ORDER BY id DESC
ale nie daje mi to efektow bo nie wiem jak to przypisać do zapytania mysql_query w takim przypadku:
  1. $allx = mysql_query("SELECT * FROM $tabelka") or die('Error');
  2. $count = mysql_num_rows($allx);
  3. for($i=1;$i<=$count;$i++)
  4. {
  5. $wynik = mysql_query("SELECT id, nick, data_wpisu FROM $tabelka WHERE id=$i");
  6. $el = mysql_fetch_array($wynik);
  7. echo '<p>nr: '.$el['id'].' - nick: '.$el['nick'].' ('.$el['data_wpisu'].')</p>';
  8. }
kusiu
Po co tak kombinować, robić 2 zapytania skoro można zrobić jedno questionmark.gif
Zastosuj JOIN'a...
Volume
Nie wiem jakby to przez JOIN polaczyc
  1. mysql_query("SELECT id, nick, data_wpisu FROM $tabelka WHERE id=$i JOIN ORDER BY id DESC");
tak wywala bledy...
kusiu
Cytat(Volume @ 2.01.2010, 19:19:38 ) *
Nie wiem jakby to przez JOIN polaczyc
  1. mysql_query("SELECT id, nick, data_wpisu FROM $tabelka WHERE id=$i JOIN ORDER BY id DESC");
tak wywala bledy...


ajtt

  1. SELECT t2.id, t2.nick, t2.data_wpisu FROM tabela1 t1
  2. RIGHT JOIN tabela2 t2 ON t2.id=t1.id
  3. ORDER BY t2.id DESC

Mnichasso
po co wlasciwie liczysz te wpisy questionmark.gif nie lepiej od razu wyswietlic wszystko z tej tabeli ?
kusiu
Cytat(Mnichasso @ 2.01.2010, 19:38:29 ) *
po co wlasciwie liczysz te wpisy questionmark.gif nie lepiej od razu wyswietlic wszystko z tej tabeli ?


Pewnie dlatego, że kolega chce wyświetlić tyle rekordów z tabeli2 ile jest w tabeli1, po wspólnym kluczu
Volume
Cytat
  1. SELECT t2.id, t2.nick, t2.data_wpisu FROM tabela1 t1
  2. RIGHT JOIN tabela2 t2 ON t2.id=t1.id
  3. ORDER BY t2.id DESC
troche nie rozumiem tego bo ja mam tylko jedna tabele a chce po prostu posortowac wg id od najwyzszego nr do najnizszego
kusiu
Cytat(Volume @ 2.01.2010, 20:02:15 ) *
troche nie rozumiem tego bo ja mam tylko jedna tabele a chce po prostu posortowac wg id od najwyzszego nr do najnizszego


To się nie zrozumieliśmy, zmylił mnie Twój wyjściowy kod. Nie rozumiem po co Ty pobierasz ilość rekordów z tabeli i później wyświetlasz je w tak dziwny sposób z WHERE'm.
Wyświetl je po prostu tak:
  1.  
  2. $wynik = mysql_query("SELECT id, nick, data_wpisu FROM $tabelka ORDER BY id DESC");
  3. while($el = mysql_fetch_array($wynik)){
  4. echo '<p>nr: '.$el['id'].' - nick: '.$el['nick'].' ('.$el['data_wpisu'].')</p>';
  5. }


Volume
No wlasnie tak mialem pierwotnie, dopiero zaczalem nauke mysqla i wydawalo mi sie ze przez petle for byloby mi latwiej pare rzeczy zrobic. No nic tak wiec na razie pozostane przy while. Dzieki wam za pomoc!
Mnichasso
Cytat(kusiu @ 2.01.2010, 19:48:35 ) *
Pewnie dlatego, że kolega chce wyświetlić tyle rekordów z tabeli2 ile jest w tabeli1, po wspólnym kluczu



no ale w obu zapytaniach miał tą samą zmienną wiec wyciągał rekordy z tej samej tabeli winksmiley.jpg
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.