Mam taką funkcje która wyświetla mi zawartośc tabeli z bazy (ma dwa powiązania relacyjne do innych tablel).
<?php function show_db($crystal = '%') { require_once 'smarty/Smarty.class.php'; // Dołączenie smarty $smarty = new Smarty; $zapytanie='SELECT * FROM properties, groups ,symetry WHERE crystal LIKE ''.$crystal.'' AND properties.group_id=groups.group_id AND properties.symetry_id=symetry.symetr
y_id'; $lacz = connect_db_read(); // łączenie z baz danych tylko do odczytu $wynik_zapytania = $lacz->query($zapytanie); // Wynik zapytania zadanego bazie if ($wynik_zapytania->num_rows) { echo '<tr><th>ID</th><th>Group</th><th>Crystal</th><th>Index</th><th>Symetry</th><th>Space group</th><th>Q1</th> <th>Q2</th><th>q3</th><th>Frequency</th><th>Czynności</th></tr>'; while ($parametry = $wynik_zapytania->fetch_assoc()) { // $tablicadb = array(); // Dostp do poszczegnych parametrów poprzez odwołanie do tablicy $parametry['nazwa kolumny w bazie'] // $temp[] = array ($id,$crystal,$spot,$sym_name,$space_group,$q1,$q2,$q3,$frequency,$gr_name) ; // $tablicadb = $temp; // $smarty -> assign('baza', $tablicadb); // $smarty -> display('show_db.htpl'); // Wywietlanie tabeli parametrw - rozmiar i inne wlasnoci DIV s w CSS echo' <tr> <td>'.$id.'</td> <td>'.$gr_name.'</td> <td>'.$crystal.'</td> <td>'.$spot.'</td> <td>'.$sym_name.'</td> <td>'.$space_group.'</td> <td>'.$q1.'</td> <td>'.$q2.'</td> <td>'.$q3.'</td> <td>'.$frequency.'</td> <td> <a href="operate_db.php?edit='.$id.'">[Edytuj]</a> <a href="operate_db.php?delete='.$id.'">[Usuń]</a></td> </tr> '; } echo '<p><a href="operate_db.php?create=1"> Dodaj nowy rekord </a> </p>'; //dodać tutaj przekazanie grupy } } ?>
Stosunkowo prostą iteracją wyświetla się wszystko co trzeba ( z pominięciem kulku kolumn takich jak gr_id sym_id bo potrzebne mi są tylko nazwy które są pozyskiwane z innych tabel przez relacje)
Teraz zasadnicze pytanie jak to przekonwertować aby zastosować smarty?
Wierszy w tej tabeli będzie ok 30.
1. Próbowałem przekazać do smarty bezpośredio wynik ale otrzymuje jeden (ostatni) wiersz ze wszystkimi kolumnami.
2. Próbowałem też tworzyć tablicę dwuwymiarową której indeksem jest numer iteracji a wartością tablica wyników.
W smarty zastosowałem Foreach które w zczytywało wartości poszczególnych iteracji i przekazywało do {html_table}. Otrzymałem po jednej osobnej tabeli dla każdego wpisu.
3. Zastanawiałem się też nad wpisaniem do smarty ręcznie tabeli i podstawianiem zmiennych. Ale co z iteracją? Trzeba by tu chyba zastosować modyfikacje drugiego rozwiązania.
Proszę o podpwiedź jak najlepiej to zrobić?