Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja zapytania
Wasiquard
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.11.2004

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


Mam kawałek kodu php z zapytaniem mysql:

  1. <?
  2. $query = mysql_query(&#092;"SELECT * FROM category ORDER BY position;\");
  3. while($rekord = mysq_fetch_array($query){
  4. $wynik = mysql_query(&#092;"SELECT * FROM wallpaper WHERE category='$rekord[id]';\");
  5. $razem = mysql_num_rows($wynik);
  6. ?>
  7. <li><a href=\"index.php?kategoria=<?= $rekord[id] ?>\" /><?= $rekord[name] ?> [<?= $razem ?>]</li>
  8. <? } ?>


Jak widać są tu umieszczone 2 zapytania, a ilość wysłanych zapytań jest zależna od rekordów wyciągniętych z tabeli zawierającej kategorie tapet. Chciałbym by w jedno zapytanie podawało mi info z tabeli "category" i liczbę tapet z każdej kategori znajdujących się w tabeli "wallpaper". Niemogę tego jakoś robić, przeszperałem wszystkie moje podręczniki i nic, z wydaje mi się że takie zapytanie można wykonać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
Co mu przeszkadza słówko AS? Przecież to jest chyba standart?

Moge sie mylic ale pamietam ze w dokumentacji PG chyba bylo albo ORACLE ze nie jest wskazane uzywanie AS po tabeli w polach tak ale po tabeli nie

Cytat
I czemu potrzeba dodać dodać c.name do grupowania? Przecież grupowanie po c.id oraz po c.name (oddzielnie) daje chyba to samo (tak zrozumiałem z tematu).

Edit: co do drugiej części -> czy dlatego, że to pole występuje w selekcie?

Jesli uzywasz funkcji agregacji max, min, sum, count, ..... i grupowania to wtedy musisz niestety wymienic wszystkie pola jakie wystepuja po slowie SELECT, wiem ze to uciazliwe ale tak niestety jest.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 28.09.2025 - 01:58