Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]System RainTPL i problem z pętlą
Forum PHP.pl > Forum > Przedszkole
Woytek950
Witam. Mam problem z systemem szablonów RainTPl, mianowicie gdy robię pętlę i wyświetlam ją to pętla dodatkowo wykonuj się jeszcze raz mimo iż rekordów jest 3 a robi 4 divy.

Mógł by ktoś pomóc?


Plik index.php
  1. $query_3 = mysql_query("SELECT * FROM bloks") or die(mysql_error());
  2. $array_3 = array();
  3. while($array_3[] = mysql_fetch_array($query_3));
  4. $tpl->assign( "bloks", $array_3 );


Plik main.tpl
  1. {loop name="bloks"}{if condition="$value.hide == 0"}<div class="menu_left">{$value.title}</div>{/if}{/loop}





ref

ref
Zyx
A ile razy musisz wywołać mysql_fetch_array() by pobrać dane? Trzy na pobranie wierszy oraz czwarty, by przekonać się, że już więcej nie ma. Stąd cztery divy.
Woytek950
Dziękuj bardzo za odpowiedź !


Pozdro



Tylko jest kolejny problem :/ ;/ 

Wyświetla się :

  1. Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 35 bytes) in /home/a7764643/public_html/new/index.php on line 60


thek
Przekroczyłeś dostępną dla skryptu ilość pamięci, czyli mniej więcej 32MB (nie liczyłem dokładnie winksmiley.jpg ). Skrypt więc albo jest tak zasobożerny albo gdzieś "cieknie". Spróbuj go trochę optymalizować, bo osobiście to ja nie widziałem nigdy aż takich żarłocznych. jedynie nalocalhoście gdy zajeżdżałemsój skrypt klkunastoma tysiącami plików przetwarzanych z życiem GD i skrypt przetwarzał je ponad kwadrans lub musiał wyświetlić na stronie jakieś kilka tysięcy miniaturek 64x64 pozycjonowanych absolutnie (była z tego mapa tworzona). jedynie jeden mój skrypt wywalał się na pamięci, gdy tworzył obiekt GD o wielomegabajtowej wielości. Zobacz czy u Ciebie nie tworzy ogromnych obiektów z którymi potem serwer ma problem.
Woytek950
ale tego nie ma gdy jest
  1. while( $array_1[] = mysql_fetch_array($query_1));


a gdy jest
  1. $fet_mys = mysql_fetch_array($query_1); while( $array_1[] =$fet_mys);

to nie działa
thek
Drugi jest błędny logicznie. Pomyśl co on naprawdę robi. Jeśli dane z bazy nie są duże, to może przed pętlą czyść tablicę $array_1 albo spróbuj ją zdebugować lub zapisać w sposób inny dodawanie. Choćby
  1. while( $row = mysql_fetch_array( $query_1 ) ) {
  2. $array_1[] = $row;
  3. }
Woytek950
  1. if(isset($_GET['galeria']) && $_GET['galeria'] == true)
  2. {
  3. $gall = $_GET['galeria'];
  4. $dir = 'galeria/'.$gall."/";
  5. $pliki=Array();
  6. if (is_dir($dir)) {
  7. if ($dh = opendir($dir)) {
  8. while (($file = readdir($dh)) !== false) {
  9. if (!is_dir($dir.$file))
  10. $pliki[]=$file;
  11. }
  12. closedir($dh);
  13. }
  14. }
  15.  
  16. foreach($pliki as $plik){
  17.  
  18. echo "<a href=\"java script: pokazGrafike('$dir$plik')\"><img style=\"width:100px; height: 100px; \" src=\"".$dir.$plik."\" /></a><br />\n";
  19. }
  20. }





A mam tu teraz skrypt który wyświetla zdjęcia z folderu o nazwie zawartej w get. Jak to przekształcić aby działało na podobnej zasadzie jak wyżej tylko bez mysql?



ref

ref

pomoze ktoś? chodzi tylko o tą pętle
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.