Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php[mysql] Zlożone zapytanie do bazy
Forum PHP.pl > Forum > Przedszkole
wcg
Witam
Mam galerie zdjęc. W tabeli "foto" zapisywane sa nazwy galerii, a w tabeli "foto_pliki" pliki oraz nr pola z tabeli "foto". Chcialbym wyswietlic wszytskie galerie z tabeli foto i dolaczyc po jednym.
napisalem tak

  1. <?php
  2. $wynik = mysql_query("SELECT * FROM foto");
  3. while ($show = mysql_fetch_array($wynik)) {
  4. $id = $show['id'];
  5. $nazwa = $show['nazwa'];
  6. $naglowek_pl = $show['naglowek_pl'];
  7. $plik = mysql_query("SELECT * FROM foto_pliki WHERE galeria='$id' LIMIT 1");
  8. while ($showplik = mysql_fetch_assoc($plik)) {
  9. $plik1 = $showplik['plik'];
  10. }
  11. echo "$naglowek_pl<br>";
  12. echo "$plik1<br>";
  13. }
  14. ?>


Czy ktos moze wie jak jedno zapytanie do bazy zamiast dwoch tak jest to przedstawione powyzej?
Zdecydowanie latwiej bedzie pozniej uzyc takiego pojedynczego zapytanie, poniewaz stosuje szablony smarty.
Hazel
  1. SELECT * FROM foto AS f, foto_pliki AS fp WHERE fp.galeria = f.id LIMIT 1
wcg
To wtedy wyswietli tylko jeden wiersz z jedna galeria, a ma wyswietlic wszytskie galerie z jednym zdjeciem z kazdej
kris2
  1. SELECT *,(SELECT fp.plik FROM foto_pliki fp WHERE fp.galeria=f.id LIMIT 1 ) FROM foto f;
Hazel
Tak. To drugie zapytanie jest dobre, pierwsze było pomyłką.
Mój błąd.
wcg
Zrobilem tak
  1. <?php
  2. $wynik = mysql_query("SELECT *,(SELECT fp.plik FROM foto_pliki fp WHERE fp.galeria=f.id LIMIT 1) FROM foto f");
  3. while ($show = mysql_fetch_array($wynik)) {
  4.  
  5. $naglowek_pl = $show['naglowek_pl'];
  6. $plik1 = $show['plik'];
  7. echo "$naglowek_pl<br>";
  8. echo "$plik1<br>";
  9. }
  10. ?>


ale wyswietla tylko liste galerii bez nazwy pliku
kris2
Spróbuj tak:

  1. SELECT *,(SELECT fp.plik FROM foto_pliki fp WHERE fp.galeria=f.id LIMIT 1 ) AS plik FROM foto f
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.