Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Pętla while i przekroczony limit
Forum PHP.pl > Forum > Przedszkole
Mlodycompany
Witam. Mam taki kodzik
  1. <?php
  2. include('config.php');
  3. $query = query('kategorie', "`ID` = '".$inc[1]."'");
  4. $row = mfa($query);
  5. $query2 = query('podkategorie', "`id_kat` = '".$inc[1]."'");
  6. print_r($inc);
  7. show('<html>
  8. <head>
  9. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  10. <title>'.$row[$lang].'</title>
  11. <link rel="stylesheet" type="text/css" href="'.$URL.'/style.css">
  12. </head>');
  13. include('logo.php');
  14. show('
  15. <table class="table_category" align="center">
  16. <tr>
  17. <th class="header" align="left">&nbsp;&nbsp;<a href="'.$URL.'/" class="aheader">'.INDEX.'</a>&nbsp;&nbsp;>>&nbsp;&nbsp;<a href="'.$URL.'/category/'.$row[0].'/" class="aheader">'.$row[$lang].'</a></th>
  18. </tr>
  19. <tr>
  20. <th>
  21. <table class="category">
  22. <tr>
  23. <th class="header2">'.UNDERCAT.'</th>
  24. </tr>
  25. ');
  26. $i = 0;
  27. while($row = mfa($query2)){
  28. $i++;
  29. $class = $i % 2;
  30. $query1 = query('produkty', "`id_podkat` = '".$row[0]."'");
  31. $ilosc = mnr($query1);
  32. show('<tr class="cat_'.$class.'"><th><a href="'.$URL.'/products/'.$inc[1].'/'.$row[0].'/">'.$row[$lang].'&nbsp;('.$ilosc.')<a/></th></tr>');
  33. }
  34. show('</table></th></tr></table>
  35.  
  36. ');
  37.  
  38.  
  39. ?>

Problem jest w tym, że nie wyświetla on podkategorii danej kategori tylko wyswietla cos takiego
Kod
[b]Fatal error[/b]:  Maximum execution time of 120 seconds exceeded in [b]c:\usr\www\function.php[/b] on line [b]24[/b]
i wyswietla duuuużo 0 na stronie. Jak temu zaradzic?
nospor
co to jest mfa? (mfa($query2)) co ono zwraca? bo widac tworzy ci petle nieskonczonoą przy while()
Mlodycompany
mfa to funkcja
  1. <?php
  2. function query($query, $where=''){
  3. $query = mysql_query("SELECT * FROM `".$query."` WHERE ".$where."");
  4. return($query);
  5. }
  6. function mfa($query){
  7. $mfa = mysql_num_rows($query);
  8. return($mfa);
  9. }
  10. function mnr($query){
  11. $mnr = mysql_num_rows($query);
  12. return($mnr);
  13. }
  14. ?>
nospor
przeciez mfa() zwraca ci liczbe rekordow. za kazdym wywolaniem petli dostaniesz te samą liczbe rekordow, przez co twoja petla nigdy sie nie skonczy. Naprawde tego nie widzisz? Zajrzyj do manuala i poczytaj co mysql_fetch_array() itp.

sądzac po kontekscie to mfa powinno wygladac tak:
  1. <?php
  2. function mfa($query){
  3. $mfa = mysql_fetch_array($query);
  4. return($mfa);
  5. }
  6. ?>


ps: zamienianie mysql_fetch_array() na mfa() to bzduryny pomysl. nic nie daje
Mlodycompany
rzeczywiscie ale na innych podstronach ta funckja działa więc to mnie zmyliło

mi daje duzo poniewaz nie musze za kazdym razem pisac $row = mysql_fetch_array($query) bo robie pisze $row = mfa($query), tak samo z mysql_num_rows
nospor
no faktycznie... duzo oszczednosc. zamiast dluzszej nazwy masz krotsza. Bądź powazny i jak juz chcesz sobie pomoc to uzywaj np. PDO

A przedewszystkim normalnego edytora co podpowiada skladnie.
Mlodycompany
ja uzywam php expert editor 4.2.
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.