Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]zapytanie
Chelo
post 29.09.2009, 15:23:10
Post #1





Grupa: Zarejestrowani
Postów: 178
Pomógł: 8
Dołączył: 19.03.2007

Ostrzeżenie: (0%)
-----


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 ;/

Ten post edytował Chelo 29.09.2009, 15:43:12
Go to the top of the page
+Quote Post
cojack
post 29.09.2009, 15:56:37
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


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.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
vokiel
post 29.09.2009, 15:58:57
Post #3





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
cojack
post 29.09.2009, 16:07:56
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


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)



Ten post edytował cojack 29.09.2009, 16:13:56


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
vokiel
post 29.09.2009, 17:53:27
Post #5





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


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. }


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 03:57