Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP]zaptanie w zapytaniu
agataperz
post 11.02.2012, 13:06:31
Post #1





Grupa: Zarejestrowani
Postów: 181
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 11.02.2012, 13:08:43
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 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


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
agataperz
post 11.02.2012, 13:19:35
Post #3





Grupa: Zarejestrowani
Postów: 181
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 11.02.2012, 13:22:28
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 wink.gif wystarczy zastosować aliasy
No i przeczytaj wyżej, bo edytowałem posta, a nadpisujesz zmienną, dlatego masz problemy


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
gothye
post 11.02.2012, 13:22:40
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


--------------------
Nie udzielam pomocy poprzez PW
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: 24.04.2024 - 02:44