Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Długie ładowanie skryptu
Forum PHP.pl > Forum > PHP
tellos
Witam,
Mam problem i nie wiem jak go rozwiązać. Polega on na tym iż skryot bardzo długo się wykonuje.
Sprawdzałem go na 5 rekordach jak i paru tysiącach i czas wykonania jest mniej więcej podobny.
Fragment skryptu:
  1. $polaczenie = mysql_connect($db_host, $db_username, $db_password) or die('Błąd: nie udało się nawiązać połączenia z bazą danych.');
  2. mysql_select_db($db_name) or die('Błąd: nie udało się wybrać schematu bazy danych.');
  3. $dzisiaj = new DateTime(date("Y-m-d"));
  4. if($_GET['jakie'] == "aktywne")
  5. {
  6. echo "<h3>Wygasłe ale aktywne</h3><br>
  7. <table>
  8. ";
  9. for($x = 0; $x <= mysql_query("SELECT MAX(id) FROM `tblhosting`"); $x++)
  10. {
  11. $wynik = mysql_fetch_array(mysql_query("SELECT * FROM `tblhosting` WHERE `id` = $x"));
  12. if($wynik['nextinvoicedate'] == NULL || $wynik['domainstatus'] == "Terminated")
  13. {
  14. continue;
  15. }
  16. $wygasa = new DateTime($wynik['nextduedate']);
  17.  
  18. if($dzisiaj > $wygasa && $wynik['domainstatus'] == "Active")
  19. {
  20. echo "
  21. <tr>
  22. <td>".$wynik['nextinvoicedate']."</td>
  23. <td>".$wynik['domain']."</td>
  24. <td>".$wynik['dedicatedip']."</td>
  25. </tr>
  26. ";
  27. }
  28. }
  29. echo "</table><br>";
  30.  
nospor
for($x = 0; $x <= mysql_query("SELECT MAX(id) FROM `tblhosting`"); $x++)
Ta petla wykonuje sie raz albo dwa razy, w zaleznosci czy mysql_query zwroci true lub false. Bo mysql_query nie zwraca max id jak ci sie wydaje

ps: jaki jest w ogole sens tej petli FOR? Nie ma zadnego.

Zrob normalne pobierane danych z tabeli przy pomocy WHILE oraz mysql_fetch_array jak to pokazali w manualu i po sprawie.
tellos
Dzięki Wielkie!
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.