Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP]zaptanie w zapytaniu
agataperz
post
Post #1





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


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ąć

Ten post edytował agataperz 11.02.2012, 13:09:17
Go to the top of the page
+Quote Post
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


join - i do manuala MySQL (IMG:style_emoticons/default/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. }


Ten post edytował Daimos 11.02.2012, 13:15:16
Go to the top of the page
+Quote Post
agataperz
post
Post #3





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


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
Go to the top of the page
+Quote Post
Daimos
post
Post #4





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


To nie jest problem, bo możesz zrobić joina na tej samej tabeli (IMG:style_emoticons/default/wink.gif) wystarczy zastosować aliasy
No i przeczytaj wyżej, bo edytowałem posta, a nadpisujesz zmienną, dlatego masz problemy
Go to the top of the page
+Quote Post
gothye
post
Post #5





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


Nic nie stoi na przeszkodzie aby wykonać JOIN na tej samej tabeli pod warunkiem że stosujesz aliasy na tabele
Go to the top of the page
+Quote Post

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: 24.08.2025 - 21:50