Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [smarty] Nie wszystko pokazuje
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
Lee
Mam problem ze smarty otóż robię sondę i mam dwie tabele poll i poll_answers struktura
poll
Kod
id        question        started        ended
2     Jak oceniasz Onet ?     13.11.2006     18.11.2006
1     Co słychać ?     08.08.2006     09.08.2006
3     abcd?     18.11.2006

poll_answers
Kod
id        question_id        answer        votes
1     2     Jest świetny     123
2     2     Może być     15
3     2     Nie podoba mi się     0
4     1     Spoko     12
5     1     Źle     1
6     3     a     12
7     3     b     78
8     3     c     451
9     3     d     50

no i takim kodem pobieram pytania i odpowiedzi z bazy danych
  1. <?php
  2. $db_query = "SELECT * FROM $tbl_poll WHERE ended<>''";
  3. $mysql -> fetch_assoc($db_query);
  4. $smarty -> assign('poll_question', $mysql -> row);
  5. foreach ($mysql -> row as $poll_question) {
  6. $mysql = new MySQL;
  7. $db_query = "SELECT * FROM $tbl_poll_answers WHERE question_id='".$poll_question['id']."'";
  8. $mysql -> fetch_assoc($db_query);
  9. $smarty -> assign('answers', $mysql -> row);
  10. }
  11. $smarty -> display("$theme/index.tpl");
  12. ?>

i wyświetlam
Kod
<table cellspacing="0" cellpadding="0" style="border: 0px">
        {foreach from=$poll_question item=poll_q}
            <tr>
                <td><b>{$poll_q.question}</b></td>
            </tr>
        {/foreach}
        {foreach from=$answers item=answers}
            <tr>
                <td>{$answers.answer}</td>
            </tr>
        {/foreach}
    </table>

ale to mi wyświetla takie coś:
Jak oceniasz Onet?
Co słychać ?
Spoko
Źle
tzn. nie pokazuje pytań do pierwszego pytania co mam źle ? (Pewnie nikt nic nie odpowie, ale to chyba jest jakaś zasada ze smarty)
dr_bonzo
Cytat
(Pewnie nikt nic nie odpowie, ale to chyba jest jakaś zasada ze smarty)
Takie teksty zwiekszaja prawdopodobienstwo nieuzyskania odpowiedzi...

  1. <?php
  2. $smarty -> assign('answers', $mysql -> row);
  3. ?>

wykonujesz to wiele razy (w petli) i tylko ostation przypisana wartosc bedzie zachowana (dostepna w szablonie).
Lee
Akurat wiem, że wartość się nadpisuje, ale nie za bardzo mam idea jak to naprawić :] chciałem wszystkie wpisy do tablicy i po foreach przesłać do template'a, ale to jest więcej niz jedna kolumna z bazy danych więc raczej nie działa
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.