Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [smarty] Wyświetlanie tablicy
Bajki
post
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 28.04.2005
Skąd: Kraków

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


Witam
mam mały problem z wyświetlaniem tablicy w smarty.
Postępowałem zgodnie z 'crash course' na stronie domowej smarty ale jednak cos nie gra. Kiedy daje po kropce nazwe kolumny z bazy danych (zawartosc tablicy pobierana jest z bazy) zamiast wybranego pola, pokazuja mi sie jedynie pierwsze znaki kazdej komorki biggrin.gif

oto moj kod :

funkcja get_news()
  1. <?php
  2. function get_news ( $limit = 3 ) {
  3.  
  4. global $news;
  5.  
  6. include('db_connect.php');
  7. $sql = mysql_query (" SELECT * FROM news LIMIT $limit ");
  8. $news = mysql_fetch_array( $sql );
  9.  
  10. }
  11. ?>


plik news.php
  1. <?php
  2. include('includes/smarty_header_main.php');
  3. include('includes/login_check.php');
  4. include('includes/news.php');
  5. $tpl-> assign('page', 'news');
  6.  
  7. get_news(3);
  8.  
  9. echo($news['id']);
  10.  
  11. $tpl->assign('news', $news);
  12. $tpl->display('news.tpl');
  13.  
  14. ?>


plik news.tpl (pokaze jedynie fragment z pokazywaniem tablicy winksmiley.jpg )
  1. {section name=item loop=$news}
  2. {strip}
  3. <tr>
  4. <td>{$news[item].content}</td>
  5. </tr>
  6. {/strip}
  7. {/section}

.content to oczywiscie nazwa jednej z kolumn

Ma ktos jakiś pomysł w czym może tkwić problem ? winksmiley.jpg
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Moli
post
Post #2





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


A pętla gdzie ? smile.gif
Go to the top of the page
+Quote Post
Bajki
post
Post #3





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 28.04.2005
Skąd: Kraków

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


pętla jest napisana w języku smarty (przynajmniej tak mi sie wydaje tongue.gif) czyli plik news.tpl
Go to the top of the page
+Quote Post
_olo_1984
post
Post #4





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


zaraz zaraz, jeżeli zapytanie zwraca wynik, to może spróbuj zrobić tak:
  1. <?php
  2. function get_news ( $limit = 3 ) {
  3.  
  4. global $news;
  5.  
  6. include('db_connect.php');
  7. $sql = mysql_query ("SELECT * FROM news LIMIT '".$limit."'");
  8. $news = mysql_fetch_array($sql);
  9. return $news;
  10. }
  11.  
  12. ...
  13. $tpl->assign('news', get_news(3));
  14. $tpl->display('news.tpl');
  15.  
  16. ?>


a może to wina cachowania, spróbuj dać $tpl->caching = 0; i zobacz. Trudno powiedzieć, niby masz dobrze napisaną pętle.

Ten post edytował _olo_1984 2.06.2008, 18:18:41


--------------------
awake
Go to the top of the page
+Quote Post
ppp
post
Post #5





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 29.01.2008

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


jak dla mnie toproblem jest w funkcji get_news()
popatrz tutaj http://pl2.php.net/mysql_fetch_array
mysle ze cos taiego to powinno byc:
  1. <?php
  2. function get_news ( $limit = 3 ) {
  3. global $news;
  4. include "db_connect.php";
  5. $result = mysql_query ("SELECT * FROM news LIMIT '".$limit."'");
  6.  
  7. $news = array ();
  8. while ($row = mysql_fetch_array($result)) {
  9. $news[] = $row;
  10. }
  11. return $news;
  12. }
  13. ?>

fukcja zwraca ci tylko jeden rekord z tabeli, a zakladam ze chcesz miec tabele z ilomas rekordami, wtedy i smarty powinno zadzialac.


--------------------
if the specifications are absolutely ambiguous, every program will satisfy them
Go to the top of the page
+Quote Post
Bajki
post
Post #6





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 28.04.2005
Skąd: Kraków

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


ok super wszystko działa tylko coś niechciał zaakceptować tego
  1. <?php
  2. LIMIT '".$limit."'"
  3. ?>

więc zamieniłem na
  1. <?php
  2. LIMIT $limit
  3. ?>
winksmiley.jpg

Dzieki wszystkim za pomoc !
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ok super wszystko działa tylko coś niechciał zaakceptować tego
Kod PHP
1
2
3
<?php
LIMIT '".$limit."'"
bo to niepoprawna konstrukcja zapytania. w limit nie ma ciapkow.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bajki
post
Post #8





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 28.04.2005
Skąd: Kraków

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


Hm no dobra ale teraz co zrobic jak potrzebuje
a ) sortowac wyswietlana tablice wg. daty
b ) sprawdzac, czy aktualnie wyswietlany news jest pierwszy skolei ?

Ten post edytował Bajki 2.06.2008, 22:06:31
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ad a) order by ?
ad b ) tu masz wszystko opisane: http://www.smarty.net/manual/en/language.f...ion.section.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bajki
post
Post #10





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 28.04.2005
Skąd: Kraków

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


Cytat(nospor @ 2.06.2008, 21:14:30 ) *
ad a) order by ?
haha no przeciez exclamation.gif nie pomyslalem o tym ;D myslalem ze trzeba jakos z poziomu smarty

dzieki, pomogłeś winksmiley.jpg
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 Aktualny czas: 22.08.2025 - 05:35