Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]zapytanie
Forum PHP.pl > Forum > Przedszkole
Chelo
czy z zapytań:

  1. SELECT * FROM phpbb_tabele WHERE gdzie=1 ORDER BY id ASC
  2. SELECT * FROM phpbb_tabele WHERE gdzie=0 ORDER BY id ASC



da się zrobić jedno i odwoływać się do każdego z nich osobno?

Myślałem, że tak będzie działać:

  1. $sql = "SELECT * FROM phpbb_tabele WHERE gdzie IN (0,1) ORDER BY id ASC";
  2.  
  3. while ($row = mysql_fetch_assoc($sql) & $row['gdzie'] == 1) {}


jednak nie działa ;/
cojack
Zrób sobie funkcję,

  1. function pobieranie ($gdzie) {
  2. $sql = "SELECT * FROM phpbb_table WHERE gdzie = $gdzie ORDER BY id ASC";
  3. ...
  4.  
  5. return $wynik
  6. }


Dziękuje.
vokiel
  1. SELECT * FROM phpbb_tabele WHERE gdzie IN(0,1) ORDER BY id ASC GROUP BY gdzie
cojack
Od kiedy przy group by można używać where?

@edit i chyba o czymś zapomniałeś:

Cytat
Otóż wg standardu ANSI SQL w klauzuli SELECT zapytań wykorzystujących agregację danych lub klauzulę GROUP BY mogą znajdować się tylko funkcje agregujące oraz nazwy tych kolumn, które będą podstawą grupowania (ponadto nazwy te muszą być wyszczególnione w klauzuli SELECT)

vokiel
Racja, pośpieszyłem się:

  1. SELECT * FROM phpbb_tabele WHERE gdzie IN(0,1) ORDER BY gdzie, id ASC

W wyniku będzie cała lista posortowana wg gdzie od 0 do 1, a następnie wg id rosnąco.

W PHP można wyświetlić wszystko w jednej pętli, wraz z oddzieleniem kategorii gdzie.
  1. $gdzie = 0;
  2. while ($row = mysql_fetch_assoc($sql)){
  3. if($row['gdzie'] != $gdzie) {
  4. $gdzie = $row['gdzie'];
  5. echo '<p>Nowa podgrupa: <strong>'.$gdzie.'</strong></p><hr />';
  6. }
  7. echo '<p>'.$row['ID'].' | '.$row['NAME'].' </p>';
  8. }
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.