Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]jak wyświetlić zapytanie z kilku tabel [php + MySQL]
qpeace1
post 18.12.2009, 00:46:30
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 1.06.2008

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


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
emp
post 18.12.2009, 01:05:47
Post #2





Grupa: Zarejestrowani
Postów: 195
Pomógł: 14
Dołączył: 12.01.2006
Skąd: Gotham City

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


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


Ten post edytował emp 18.12.2009, 01:07:40


--------------------
Temat zamykam i przenoszę do Bangladeszu.
To jest wiadomość śmierci jeśli ją czytasz to znaczy że pozostało ci 30 sekund życia, więc lepiej zacznij się modlić.
Go to the top of the page
+Quote Post
qpeace1
post 18.12.2009, 19:19:40
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 1.06.2008

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


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?

Ten post edytował qpeace1 18.12.2009, 19:50:38
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: 14.08.2025 - 06:59