Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]zaptanie w zapytaniu
Forum PHP.pl > Forum > Przedszkole
agataperz
Witam,

nie wiem jak zobić coś takiego:
  1. $query = "SELECT * FROM ehi where odnosnik='' ";
  2. if(!$result = mysql_query($query, $db_lnk)){
  3. echo('Wystapil blad<BR>');
  4. }
  5. while($row = mysql_fetch_row($result)){
  6.  
  7. if ($row[8] != '') {
  8. $query = "SELECT * FROM ehi where odnosnik='$row[0]'";
  9. if(!$result = mysql_query($query, $db_lnk)){
  10. echo('Wystapil blad: pobieranie atrybutów<BR>');
  11. }
  12. while($rowe = mysql_fetch_row($result)){
  13. echo $rowe[0]." ".$rowe[1];
  14. }
  15. } else {
  16. echo $row[0]." ".$row[1];
  17. }


wszystko ładnie działa ale do momentu wyświetlenia drugiego zapytania, póżniej niestety pętla się zatrymuje.

możecie mi powiedzieć jak z tego wybrnąć
Daimos
join - i do manuala MySQL wink.gif Połącz rekordy w jednym zapytaniu, zamiast dokładać kolejne zapytania w locie... co będzie jak będziesz miał 100 rekordów? 101 zapytań?
źle widzę, czy nadpisujesz zmienną $result?
  1. $query = "SELECT * FROM ehi where odnosnik='' ";
  2. if(!$result = mysql_query($query, $db_lnk)){
  3. echo('Wystapil blad<BR>');
  4. }
  5. while($row = mysql_fetch_row($result)){
  6.  
  7. if ($row[8] != '') {
  8. $query = "SELECT * FROM ehi where odnosnik='$row[0]'";
  9. if(!$result = mysql_query($query, $db_lnk)){ // tutaj nadpisujesz $result i przy kolejnym obrocie główna pętla już z tego korzysta
  10. echo('Wystapil blad: pobieranie atrybutów<BR>');
  11. }
  12. while($rowe = mysql_fetch_row($result)){
  13. echo $rowe[0]." ".$rowe[1];
  14. }
  15. } else {
  16. echo $row[0]." ".$row[1];
  17. }
agataperz
Właśnie w tym problem że nie moge uzyc JOIN bo to jedna i ta sama tablica.
Jeżeli kolumna 8 z pierwszego zapytania jest pełna to wtedy to wtedy ma wyświetliś rekordy gdzie 'odnosnik' równy id
JOIN jest do łączenia tabel
Daimos
To nie jest problem, bo możesz zrobić joina na tej samej tabeli wink.gif wystarczy zastosować aliasy
No i przeczytaj wyżej, bo edytowałem posta, a nadpisujesz zmienną, dlatego masz problemy
gothye
Nic nie stoi na przeszkodzie aby wykonać JOIN na tej samej tabeli pod warunkiem że stosujesz aliasy na tabele
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.