Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapytanie bez wyniku
miccom
post
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Witam serdecznie smile.gif


Jeśli zadam pytanie do bazy danych a nie ma danego rekordu to cały system się wiesza...
Jak ominąć ten problem?

  1. $baza->query("select * from tabela where id='.$id_rekordu.' ");
  2. $liczba_wierszy = $result->num_rows;
  3. while ($row = $result->fetch_assoc() ) {
  4. $konflikt=$baza->query('select * from tabela_2 where id_2='.$row['id_2'].'');
  5. $konflikt2=$konflikt->fetch_assoc();
  6. //dalsza obróbka danych
  7.  
  8. }


Jak nic nie znajdzie, to kolejne zapytanie zatrzymuje wykonywanie kodu, ale otrzymuję potem komunikat BAD GATEWAY...


Proszę o pomoc.

Ten post edytował miccom 26.02.2014, 22:28:45


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
com
post
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


hmm
  1. if($liczba_wierszy) // to do
Go to the top of the page
+Quote Post
miccom
post
Post #3





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


ok, więc każde zapytanie muszę odpytywać o ilość rekordów?
w tym przykładzie jest mi to potrzebne, ale w niektórych nie muszę znać ilości...


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
Turson
post
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Więc po co pobierasz ilość wierszy, jeżeli ich nie sprawdzasz
Go to the top of the page
+Quote Post
miccom
post
Post #5





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Cytat(Turson @ 26.02.2014, 23:06:21 ) *
Więc po co pobierasz ilość wierszy, jeżeli ich nie sprawdzasz


W tym ok, ale co zrobić jeśli nie pobieram?

Np. gdybym dał tak:


  1. $baza->query("select * from tabela where id='.$id_rekordu.' ");
  2. while ($row = $result->fetch_assoc() ) {
  3. $konflikt=$baza->query('select * from tabela_2 where id_2='.$row['id_2'].'');
  4. $konflikt2=$konflikt->fetch_assoc();
  5. //dalsza obróbka danych
  6.  
  7. }


Ten post edytował miccom 26.02.2014, 23:14:37


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
Turson
post
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Sprawdzając czy są jakieś wyniki lub nie możesz wyświetlić stosowny napis "Brak wyników"

Cytat
W tym ok, ale co zrobić jeśli nie pobieram?

Nie rozumiem w jakim kontekście pytasz
Go to the top of the page
+Quote Post
miccom
post
Post #7





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Czy za każdym rem muszę robić taki schemat:

  1. $result=$baza->query("select * from tabela where id='.$id_rekordu.' ");
  2. [b]$liczba_wierszy = $result->num_rows;
  3. if($liczba_wierszy>0){[/b]
  4. while ($row = $result->fetch_assoc() ) {
  5. $konflikt=$baza->query('select * from tabela_2 where id_2='.$row['id_2'].'');
  6. $konflikt2=$konflikt->fetch_assoc();
  7. //dalsza obróbka danych
  8.  
  9. }
  10.  
  11.  
  12. }


Ten post edytował miccom 26.02.2014, 23:35:56


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
com
post
Post #8





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


nie nie musisz, dałeś taki przykład, no to dałem Ci jedno z możliwych rozwiązań dla tego konkretnego przypadku, które jak teraz patrze w zasadzie nawet nie jest potrzebne bo przecież $result->fetch_assoc() jeśli zwróci null to pętle Ci się itak nie wykona.. pomijając fakt że $result to ja wgl tu w tym kodzie nie widzę wink.gif
Go to the top of the page
+Quote Post
miccom
post
Post #9





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


NO to co w takim razie muli do tego stopnia, że po minucie wywala BAD GATEWAY?


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
com
post
Post #10





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


no to masz gdzieś napisane coś co się zapętla, lub jakieś inne cuda nwm mam Ci powróżyć przecież mam fragment tylko kodu z którego nic nie wynika..
Go to the top of the page
+Quote Post
miccom
post
Post #11





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


ale nawet ten fragment zamula...


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
com
post
Post #12





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


no to zdebuguj sobie ten kod i sam dojdziesz gdzie tak obciążasz serwer, że się sypie.. jak dodałeś ten warunek to jest to samo? jeśli tak to błąd jest gdzieś indziej jeśli nie to pewnie kwestia //dalsza obróbka danych wink.gif
Go to the top of the page
+Quote Post
miccom
post
Post #13





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Albo jeszcze inaczej...

Jak zmienię wszystko na zwykłe połączenia mysql to nic nie zamula...
Dopiero jak wrzucę obiektowe zapytania to już się robi młynek, i tylko wtedy kiedy nie ma rekordu o który pytam...

Generalnie jak zapytam obiektowo o cokolwiek w bazie a np. machnę się z literówką.. to wskazuje że to nie jest obiekt... i zamula...


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
com
post
Post #14





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


no zamula bo się gdzieś zapętla, a czemu sie zapętla bo masz gdzieś błąd..
Go to the top of the page
+Quote Post
miccom
post
Post #15





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


A dodawać zgłaszanie do wszystkich zapytań też niewiele da bo większość mam zapytań ajaxowych...
chyba że zapis do pliku z alertami...

Jak to rozwiązać?

Nie ukrywam że mam zapytania wielopoziomowe które odpytują bazę wszerz i wzdłuż, bardzo dziwnymi zapytaniami.

Ten post edytował miccom 27.02.2014, 00:33:47


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
com
post
Post #16





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


może byś tak dał kod, bo co ja mam rozwiązać jak tego nie widzę..
Apropo tego fragmentu, jesli 1 zapytanie nie zwróci Ci rekordu to masz tak jak tu:
http://ideone.com/0zPOm9

Wiec to co tam jest przecież wgl się nie wykona, a zamula Ci z innego powodu, a skoro odpytujesz to ja ajaxem to pewnie przez to, że blednę request też chcesz wyświetlać..

Cytat
Nie ukrywam że mam zapytania wielopoziomowe które odpytują bazę wszerz i wzdłuż, bardzo dziwnymi zapytaniami.


Mam wrażenie że dało by się to zoptymalizować wink.gif może czas zrefakturyzować kod biggrin.gif
Go to the top of the page
+Quote Post
miccom
post
Post #17





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Wiesz... to skomplikowany kod, i aby go "zref...." cokolwiek to znaczy to trzeba by się zagłębić mocno w projekt...

Pozostaje kwestia finansów, bo nikt nie "zref..." cokolwiek to znaczy za darmo, a i nie mam chęci pokazywać kodu bo ucząc się programowania zostałem uczulony na "nie pokazywanie" kodu dla potencjalnych hakierów właśnie na forach dla hakierów smile.gif .

Kółko się zamyka, brak kasy= samodzielne próby naprawy = zamulanie.

Gdyby było siano= zatrudnienie kodera = brak zamulania.
I jak nie patrzę, te równania nie chcą się inaczej ułożyć...
bo mi pasowałoby zamulanie = zatrudnienie kodera = siano

No ok, ale jak nie wyświetlać danych których nie ma?

Wykonuję pewne działania, zapisy do bazy danych, usuwanie rekordów, dodawanie itp... a przez ajax przesyłam:
  1. echo json_encode($zdarzenie);


i w js mam np.
  1. $.ajax({
  2. async: false,
  3. type : "GET",
  4. dataType : "json",
  5. url : "../plik.php",
  6. data : "action=6",
  7. cache: false,
  8. success: function(dane_mess){
  9. $.blockUI({ message: '<div id="alert_window">'+dane_mess['alert']+'</div>' });
  10. setTimeout($.unblockUI, 1000);
  11. }
  12. });


Ten post edytował miccom 27.02.2014, 01:01:01


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
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 Aktualny czas: 19.08.2025 - 22:16