Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]jak wyświetlić zapytanie z kilku tabel [php + MySQL]
Forum PHP.pl > Forum > Przedszkole
qpeace1
Witam, mam problem z wyświetleniem takiego zapytania


  1.  
  2. $zapytanie2 = "SELECT * FROM cele, strategie WHERE cele.id_strategii = strategie.id";
  3. $wynik = mysql_query($zapytanie2, $polaczenie_sql);
  4.  
  5. while ($rekord = mysql_fetch_assoc($wynik))
  6. {
  7.  
  8. echo '<tr><td>' .$rekord['cele.id'].'</td><td>'.$rekord['cele.nazwa'].'</td><td>'.$rekord['strategie.nazwa'].'</td></tr>';
  9.  
  10. }





wynik jest pusty, a jak dam
  1. echo '<tr><td>' .$rekord['id'].'</td><td>'.$rekord['nazwa'].'</td><td>'.$rekord['nazwa'].'</td></tr>';

to pokazuje mi tylko dane z tabeli strategie,

przy czym efekt, do którego dążę, to pokazanie z tabeli cele, rekordów: 'id' i 'nazwa', oraz odpowiadający im rekord 'nazwa' z tabeli strategie, gdzie rekord 'id_strategii' z tabeli cele odpowiada rekordowi 'id' z tabeli strategie

macie może jakieś sugestie?
emp
Wszystko masz dobrze a zapytanie działa poprawnie co prawda wynik nieoczekiwany... najlepiej wyszczególnij kolumny, a tak samo nazywające się kolumny opisz inaczej np
  1. SELECT c.id, c.nazwa AS cel_nazwa, s.nazwa AS strategia_nazwa FROM cele AS c, strategie AS s WHERE c.id_strategii = s.id


i teraz wyłuskasz to tak
  1. echo '<tr><td>' .$rekord['id'].'</td><td>'.$rekord['cel_nazwa'].'</td><td>'.$rekord['strategia_nazwa'].'</td></tr>';
qpeace1
dzięki za szybką odpowiedź, ale jest jeszcze jeden problem, o którym wcześniej nie myślałem że się pojawi:

zapytanie nie pokazuje mi celów, które nie są związane z konkretną strategią, np. mam:
cel -> strategia
cel1 -> strategia wizerunku
cel2 // jeszcze nie przypisany do żadnej strategii
cel3 -> strategia wizerunku
cel4 -> strategia kosztowa

i jeżeli w tabeli strategie mam tylko zdefiniowaną strategię wizerunku i strategię kosztową, wówczas zapytanie wyświetli mi :
cel -> strategia
cel1 -> strategia wizerunku
cel3 -> strategia wizerunku
cel4 -> strategia kosztowa

pomijając:
cel2


czy można jakoś wyświetlić cały spis id i nazw celów, a jak konkretny cel nie ma jeszcze sformalizowanej strategii, to pole powinno być puste (tj. jeżeli id_strategii w tabeli cele nie odpowiada żadnemu id w taeli strategie )

przypuszczam, że można ograniczyć zapytanie do

SELECT c.id, c.nazwa AS cel_nazwa, s.nazwa AS strategia_nazwa FROM cele AS c, strategie AS s



i tabele łączyć w php poprzez instrukcję if, ale to trochę karkołomne, można to zrobić od razu poprzez precyzyjniej sformułowane zapytanie wyświetlające wszystkie wyniki z tabeli cele i łączące je z tabelą strategie jeżeli występuje tam dany rekord?
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.