ďťż
Podstrony
|
telcocafeCześć.Nie owijając w bawełnę. metoda klasy Galeria:function getGaleryList($host,$folder,$multiArray) { $galeryList = ''; $k=0; $m=0; for($i=1; $i<=count($multiArray); $i++) { for($j=$i; $j<=$i+3; $j++) { $tmpl = new Template('html/galeria.htm'); $tmpl->add('img_file'.$j,$multiArray[$i]['img_file' ]); $tmpl->add('img_desc'.$j,$multiArray[$i]['img_desc' ]); $m++; $opis .= $multiArray[$i]['img_desc'].'<br>'; $i++; } $galeryList .= $tmpl->execute(); $k++; } $array['opis'] = $opis; $array['k'] = $k; $array['m'] = $m; $array['galeryList'] = $galeryList; return $array; }Wywołanie metody getGalleryList():require_once('galeria_class.php'); $galeria = new Galeria; $mysql->query("SELECT * FROM galeria") or die($mysql->error_code); $multiArray = $mysql->result_to_multi_array('subaruserwis','galeria'); echo count($multiArray); $array = $galeria->getGaleryList($host,$galleryFolder,$multiArray); echo '<br>Duza petle wykonalem '.$array['k'].' razy<br>'; echo 'Mala petle wykonalem '.$array['m'].' razy<br>'; echo $array['opis']; $zawartosc = $array['galeryList']; Klasa MySQL:class MySQL { var $result; //Full result after mysql_query var $connection; //Connection identyfier var $error_code; //Error message function connect($host, $database, $user, $password) { if(!$this->connection = @mysql_connect($host, $user, $password)) { $this->error_code = mysql_error(); return false; } else { if(!mysql_select_db($database,$this->connection)) { $this->error_code = mysql_error(); return false; } return true; } } function query($query) { if(!$this->result = @mysql_query($query,$this->connection)) { $this->error_code = mysql_error(); return false; } else { return true; } } function result_to_multi_array($database,$table) { $fields = mysql_list_fields($database, $table, $this->connection); $columns = mysql_num_fields($fields); $i=1; while($row = mysql_fetch_assoc($this->result)) { for ($j=0;$j<$columns;$j++) { $array[$i][mysql_field_name($fields, $j)] = $row[mysql_field_name($fields, $j)]; } $i++; } return $array; } function mysql_fetch_assoc() { return mysql_fetch_assoc($this->result); } }Klasa Template:<?php class Template { var $tmpl; var $dane; function Template($name) { $this->tmpl = implode('', file($name)); $this->dane = Array(); } function add($name, $value = '') { if (is_array($name)) { $this->dane = array_merge($this->dane, $name); } else if (!empty($value)) { $this->dane[$name] = $value; } } function execute() { return preg_replace('/{([^}]+)}/e', '$this->dane["\\1"]', $this->tmpl); } } ?> Bardzo proszę was o pomoc bo siedze nad tym już drugi dzień i zaraz zaczną mi siwieć włosy ... :censored: Fajnie, że napisałeś jaki to problem... widac ze jestes bardzo zestresowany i zly :) ale opanuj sie i napisz co i jak. Sprawa jest prosta jak budowa cepa pierwszy kod. Petła się albo zapętla albo nieuruchamia. Zmieniłem teraz obsluge tej motody na kod: function getGaleryList($host,$folder,$multiArray) { $galeryList = ''; $i=1; while($i<=count($multiArray)) { $iCounter = $i; $kcounter = 0; $j=$i; $jMax = $i+3; while($j<=$jMax) { $tmpl = new Template('html/galeria.htm'); $tmpl->add('img_file'.$kcounter,$multiArray[$j]['img_file' ]); $tmpl->add('img_desc'.$kcounter,$multiArray[$j]['img_desc' ]); $j++; $kcounter++; } $i=$j; $galeryList .= $tmpl->execute(); } return $galeryList; } Teraz przynajmniej się wyświetla poprawnie tabelka ......... to znaczy 3 kolumny dwa rzędy. Owszem jestem zestresowany i zdenerwowany bo strone mam do zdanie za 3 dni do zrobienie oprócz galerii jeszcze jeden dział a ugrzęzłem na tym. To ja sie wypowiem w stosunku do kodu, który podałeś poniżej... ale wystarczyloby gdybyś wypisywał sobie $i oraz $j, zobaczyłbyś zaraz dlaczego sie zapętla... for($j = $i, $j<$i+3;$j++)$i++; Tak robisz... i taka pętla się na pewno nigdy nie skończy, bo równolegle zwiększasz $i z $j. Po co zwiększasz $i w tej pętli to nie wiem, ale w kazdym razie masz przyczyne błędu. Dobra już uściślam. W bazie mam 5 rekordów. Pobieram to w pierwszych linijkach: while($i<=count($multiArray)) wszystko pięknie ale muszę zmieścić 3 zdjęcia obok siebie <tr> <td class="gallery1"><img src="{img_file1}" border="0"></td> <td class="gallery1"><img src="{img_file2}" border="0"></td> <td class="gallery1"><img src="{img_file3}" border="0"></td> </tr> <tr> <td class="gallery2">{img_desc1}</td> <td class="gallery2">{img_desc2}</td> <td class="gallery2">{img_desc3}</td> </tr> Żeby tpl mi zadziałał to muszę nazwać zmienne wprowadzane przez metodę add dodając do nazwy cyfrę odpowiadającą zdjęciu jakie teraz formatuję. Potem muszę zmienić wartość zmiennej $i bo w przeciwnym razie wykonywałby mi nie od zdjęcia 4 tą oberację ale od 2. Nie jestem w stanie tego lepiej wyjaśnić sam tego do końca nie rozumiem ale czuję że mniej więcej tak to powinno być i już prawie jest ale ten drań mi nie wyświetla dwóch pierwszych zdjęć i opisów w dwóch pierwszych kolumnach, dopiero w trzeciej. Nie wiem co jest grane. |
|||
Sitedesign by AltusUmbrae. |