Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]System RainTPL i problem z pętlą
Woytek950
post 22.09.2009, 06:14:51
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 2
Dołączył: 6.06.2008
Skąd: jesteś ?

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


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
Go to the top of the page
+Quote Post
Zyx
post 22.09.2009, 07:11:09
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


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.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
Woytek950
post 22.09.2009, 15:15:35
Post #3





Grupa: Zarejestrowani
Postów: 130
Pomógł: 2
Dołączył: 6.06.2008
Skąd: jesteś ?

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


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


Go to the top of the page
+Quote Post
thek
post 22.09.2009, 20:17:31
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Woytek950
post 23.09.2009, 15:16:26
Post #5





Grupa: Zarejestrowani
Postów: 130
Pomógł: 2
Dołączył: 6.06.2008
Skąd: jesteś ?

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


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

Ten post edytował Woytek950 23.09.2009, 15:16:56
Go to the top of the page
+Quote Post
thek
post 23.09.2009, 16:20:43
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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. }


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Woytek950
post 6.10.2009, 14:37:21
Post #7





Grupa: Zarejestrowani
Postów: 130
Pomógł: 2
Dołączył: 6.06.2008
Skąd: jesteś ?

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


  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
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 Wersja Lo-Fi Aktualny czas: 5.07.2025 - 03:24