Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Przeciążenie serwera, pętla while, Błąd wewnętrzny serwera
Tomplus
post
Post #1





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Witam,

Tworzę nowy temat, bo problem jest inny niż z powiązanymi rozwiązaniami z tematu:
http://forum.php.pl/index.php?showtopic=203921&hl=
gdzie YaQzi oraz alegorn pomogli swoimi zapytaniami związanymi z bazą.

Wykonanie zapytania w PHPMyAdmin dają wynik dokładnie taki jaki był zamierzony, wynik pojawia się szybko, za to w skrypcie PHP już nie.

jedno z zapytań działających które użyłem
  1. SELECT p.* FROM produkty t JOIN produkty p USING(nazwa, model,typ) WHERE t.id='6156'



DZIAJĄCE:
  1. $zap = "SELECT p.* FROM produkty t JOIN produkty p USING(nazwa, model,typ) WHERE t.id='6156'";
  2. $p1=mysql_fetch_array(zapytaj($zap));
  3. print_r($p1); // jeden rekord - logiczne

Wynikiem jest tylko jeden rekord, ale to logiczne.

NIE DZIAŁAJĄCE:

  1. $zap = "SELECT p.* FROM produkty t JOIN produkty p USING(nazwa, model,typ) WHERE t.id='6156'";
  2. while ($p1=mysql_fetch_array(mysql_query($zap)))
  3. {
  4. print_r($p1); //Internal Server Error : Wewnętrzny błąd serwera
  5. }


metoda dwóch zapytań

  1. $zap = "SELECT typ,model,nazwa FROM produkty WHERE id='6156'";
  2. $zap = "SELECT * FROM produkty WHERE typ={$p[0]} AND model={$p[1]} AND nazwa={$p[2]}";
  3. while ($p1=mysql_fetch_array(mysql_query($zap)))
  4. {
  5. print_r($p1); //Internal Server Error : Wewnętrzny błąd serwera
  6. }


Jeszcze kilka lat temu metoda druga była najczęściej używane metoda podczas pisania zapytań, co jak co, ale zawsze działały, czasem wolniej, ale działalo.

Teraz pętla while jak w jednym zapytaniu, jak w przypadku 2 zapytań powoduje wewnętrzny problem serwera:


Teraz trochę danych technicznych:
- korzystam serwerów NAZWA.pl
- w bazie istnieje 1200 rekordów produktow (auto_increment dla ID, indexowanie dla nazwa,typ i model)
- dla ID podanego w przykładzie powinny wyświetlić się 3 ID produktów.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jeszcze kilka lat temu metoda druga była najczęściej używane metoda podczas pisania zapytań, co jak co, ale zawsze działały, czasem wolniej, ale działalo.
Tak, tak, jak również kilka lat temu gruszki rosły na wierzbie wink.gif

NIe:
  1. while ($p1=mysql_fetch_array(mysql_query($zap)))
  2.  
  3. {
  4.  
  5. print_r($p1); //Internal Server Error : Wewnętrzny błąd serwera
  6.  
  7. }

a:
  1. $res = mysql_query($zap);
  2. while ($p1=mysql_fetch_array($res))
  3.  
  4. {
  5.  
  6. print_r($p1); //Internal Server Error : Wewnętrzny błąd serwera
  7.  
  8. }
Odrobina podstawowej wiedzy co się dzieje w WHILE oraz co robi mysql_query by się przydało.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tomplus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Cytat(nospor @ 23.08.2012, 12:10:47 ) *
Tak, tak, jak również kilka lat temu gruszki rosły na wierzbie wink.gif

oczywiście mówię o sobie, a nie innych smile.gif


Cytat(nospor @ 23.08.2012, 12:10:47 ) *
  1. $res = mysql_query($zap);
  2. while ($p1=mysql_fetch_array($res))
  3. {
  4. print_r($p1); //Internal Server Error : Wewnętrzny błąd serwera
  5. }

Odrobina podstawowej wiedzy co się dzieje w WHILE oraz co robi mysql_query by się przydało.


Mój błąd!

Zachciało mi się skrócić kod o jedną linię, a zastosowanie tego tak jak napisałem powyżej to wczytywanie w nieskończoność tego samego zapytania co powodowało przeciążenie i błąd wewnętrzny serwera. Dlatego bez pętli zapytanie działa.

DZIĘKUJE!
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: 20.08.2025 - 21:31