Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]Co może być przyczyną tego, że skrypt nagle przestał działać?
Forum PHP.pl > Forum > PHP
miedzna
Załączam skrypt, może ktoś zobaczy i znajdzie jakiś błąd. Chodzi o to, że skrypt działał jak w bazie było do 2000 rekordów, teraz jest 2330 rekordów i skrypt przestał działać sad.gif
Skrypt generował mapę struktury z bazy danych.
Struktura tabeli bazy:

| ID | Name | Data | Parent |
| 1 | Coś tam | 2007-01-01 | 2 |

  1. <?php
  2. function MakeTreeMapa($Page){
  3.  
  4. $result=mysql_query("SELECT * FROM tabela ORDER BY Name");
  5.  
  6. while($Folder0=list($ID,$Name,$Description,$Parent)=mysql_fetch_array($result)){
  7. $table[$Parent][$ID]=$Name; 
  8. $partable[$ID]=$Parent;
  9. $Folder[$ID]=$Folder0;
  10. };
  11.  
  12. $results.=TreeExpandMapa(0,$table,$partable,$Folder,$Page,0,5);
  13.  
  14. return $results;
  15. }
  16.  
  17.  
  18. // buduje drzewko
  19. function TreeExpandMapa($Parent,$table,$partable,$Folder0,$Page,$level,$levelexpand){
  20.  
  21. $list=$table[$Parent];
  22.  
  23. $width=($level)*10;
  24.  
  25. $result='';
  26.  
  27. while(list($key,$val)=@each($list)){
  28. if($level < $levelexpand){
  29. $result.="<li style='margin-left:".$width."px;'><a href='?Page=".$Folder0[$key]["ID"]."&n=".$level."' title='".$Folder0[$key]["Name"]."'>".$Folder0[$key]["Name"]."</a>&nbsp;";
  30.  $result.= '(<a href="admin.php?Page='.$Folder0[$key]["ID"].'&editID='.$Folder0[$key]["ID"].'" style="color:green;" title="EDYTUJ"><B>edytuj</B></a> | ';
  31.  $result.= '<a href="admin.php?Page='.$Folder0[$key]["ID"].'&deleteID='.$Folder0[$key]["ID"].'" style="color:green;" title="USUŃ"><B>usuń</B></a> | ';
  32.  $result.= '<a href="admin.php?Page='.$Folder0[$key]["ID"].'&dodaj='.$Folder0[$key]["ID"].'" style="color:green;" title="DODAJ DZIECKO"><B>dodaj dziecko</B></a>)</li>';
  33. }
  34. if (isset($table[$key])){
  35. $result.=TreeExpandMapa($key,$table,$partable,$Folder0,$Page,$level+1,$levelexpand);
  36. }
  37. }
  38. return $result;
  39. }
  40.  
  41. print '<ul>';
  42. print MakeTreeMapa($Page);
  43. print '</ul>';
  44. ?>
UDAT
Przekroczenie limitu czasu?
Fixus
a takie pytanko? Jaki typ danych jest w polu ID? Kiedyś w swojej tabeli dałem TINYINT i przy 128 rekordach skrypt przestał odpowiadać. Przyczyna? Skończył się zakres dla pola typu TINYINT
miedzna
W polu ID jest bigint(255)

Problem już jest rozwiązany, wystarczyło zwiekszyć pamięć po stronie serwera.


>> Kiedyś w swojej tabeli dałem TINYINT i przy 128 rekordach skrypt przestał odpowiadać

Jaka wartość była by tu najlepsza?
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.