Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Closed TopicStart new topic
> [inne][SMARTY] pętla
gOdi_1991
post 6.05.2010, 13:43:02
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 5.05.2010

Ostrzeżenie: (30%)
XX---


Witam mam nadzieje że tym razem znajdzie się ktoś kto mi pomoże smile.gif a więc konkretnie mam problem z pętlą w smarty ponieważ zamiast wyświetlać mi 5 ostatnich rekordów z tabeli wyświetla mi 5 takich samych ... ;/

fragment. plik php

  1.  
  2. $result = mysql_query("SELECT id, title, value_1, value_2, img FROM news ORDER BY id DESC")
  3. or die("Niepoprawne zapytanie MySQL");
  4. $number = mysql_num_rows($result);
  5.  
  6. while ($news = mysql_fetch_array($result))
  7. {
  8.  
  9. $smarty->assign("news_id" ,$news['id']);
  10. $smarty->assign("news_title" ,$news['title']);
  11. $smarty->assign('news_value1',$news['value_1']);
  12. $smarty->assign('news_img',$news['img']);
  13. }
  14.  


tpl
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <title>Aktualnosci</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.  
  6. <link href="clansphere.css" rel="stylesheet" type="text/css" />
  7. <link rel="alternate" type="application/rss+xml" href="../../uploads/rss/news.xml" />
  8. </head>
  9. <div style="float: left; padding-left: 10px;width: 553px;">
  10. <table cellspacing="0" cellpadding="0" style="text-align: left;"><tr><td><b><i><font color="1f1f1f" size="3" face="Arial"> AKTUALNOŚCI...</font></i></b>
  11. <img src="templates/images/22.jpg">
  12. </td></tr></table>
  13.  
  14. <table cellspacing="0" cellpadding="0" style="text-align: left;">
  15. {section name=news loop=5}
  16.  
  17.  
  18. <tr><td><b>{$news_title}</b> <br><img style="float: left;" border="0" src="templates/images/uploads/{$news_img}"><font face="Tahoma" size="2" color="1f1f1f">{$news_value1}</font><td></tr>
  19. <tr ><td ><img src="templates/images/22.jpg"></td></tr>
  20.  
  21.  
  22. {/section}
  23. </div>
Go to the top of the page
+Quote Post
nospor
post 6.05.2010, 13:44:45
Post #2





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




poniewaz w petli za kazdym razem nadpisujesz wartosci szablonu smile.gif

uzyj tablicy i tablice przekazuj do szablonu


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

"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
gOdi_1991
post 6.05.2010, 14:09:02
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 5.05.2010

Ostrzeżenie: (30%)
XX---


zrobiłem takie coś
  1. $result = mysql_query("SELECT id, title, value_1, value_2, img FROM news ORDER BY id DESC")
  2. or die("Niepoprawne zapytanie MySQL");
  3. $number = mysql_num_rows($result);
  4.  
  5. while ($news = mysql_fetch_array($result))
  6. {
  7. $smarty->assign('news',
  8. array('id' => $news['id'],
  9. 'title' => $news['title'],
  10. 'value1' => $news['value_1'],
  11. 'value2' => $news['value_2'],
  12. 'img' => $news['img']
  13. ));
  14.  
  15. }

lecz dalej nic coś źle czego brakuje ?
Go to the top of the page
+Quote Post
gothye
post 6.05.2010, 14:36:33
Post #4





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


zrób tak :

  1. while ($news = mysql_fetch_assoc($result))
  2. {
  3. $tablica[] = $news ;
  4.  
  5.  
  6. }


a potem
  1. $smarty->assign('zmienna',$tablica);


Ten post edytował gothye 6.05.2010, 14:39:26


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
gOdi_1991
post 6.05.2010, 14:43:34
Post #5





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 5.05.2010

Ostrzeżenie: (30%)
XX---


nic sie nie wyświetla ...
Go to the top of the page
+Quote Post
gothye
post 6.05.2010, 14:50:39
Post #6





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


nie :
  1. {section name=news loop=5}
  2. {/section}
  3. tylko :
  4. {section name=b loop=$tablica}
  5. {tablica[b].zmienna}
  6. {/section}


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
gOdi_1991
post 6.05.2010, 15:03:44
Post #7





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 5.05.2010

Ostrzeżenie: (30%)
XX---


Kod
Fatal error: Smarty error: [in news.tpl line 30]: syntax error: unrecognized tag: tablica[b].zmienna (Smarty_Compiler.class.php, line 446) in c:\usr\krasnal\www\sklep\demo\libs\Smarty.class.php on line 1113
Go to the top of the page
+Quote Post
gothye
post 6.05.2010, 15:07:54
Post #8





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


nawet podstaw smarty nie masz ?
zrobiłem literówke ,a gdzie znak $ ?
nie kopiuj tylko zacznij mysleć podczas zrzynania z forum ...

Ten post edytował gothye 6.05.2010, 15:11:01


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
gOdi_1991
post 6.05.2010, 17:38:58
Post #9





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 5.05.2010

Ostrzeżenie: (30%)
XX---


jednak dalej nic nie wyświetla sciana.gif

Refresh
Go to the top of the page
+Quote Post
nospor
post 6.05.2010, 19:16:09
Post #10





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




Ja do tablic uzywam FOREACH
http://www.smarty.net/manual/en/language.f...ion.foreach.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
gOdi_1991
post 7.05.2010, 00:11:31
Post #11





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 5.05.2010

Ostrzeżenie: (30%)
XX---


aktualnie to wygląda u mnie tak lecz wyskakuje błąd

błąd
Kod
Fatal error: Call to a member function on a non-object in c:\usr\krasnal\www\sklep\demo\news.php  on line 11


php
  1. $result = mysql_query("SELECT id, title, value_1, value_2, img FROM news ORDER BY id ASC")
  2. or die("Niepoprawne zapytanie MySQL");
  3. $number = mysql_num_rows($result); /// Ilosc newsów ///
  4.  
  5. $smarty->assign('results', $db->getAssoc($result));


jeżeli potrzebny plik TPL to prześle smile.gif
Go to the top of the page
+Quote Post
nospor
post 7.05.2010, 06:22:08
Post #12





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




jejkus...
a skad zes nagle wytrzasnal:
$db->getAssoc($result)
?
Wogole rozumiesz co piszesz czy bierzesz zlepki kodów z roznych kursów i wstawiasz na chybił trafił?


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

"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
gOdi_1991
post 7.05.2010, 09:30:29
Post #13





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 5.05.2010

Ostrzeżenie: (30%)
XX---


taki przykład był w manualu ...
Go to the top of the page
+Quote Post
nospor
post 7.05.2010, 09:39:04
Post #14





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




Na 100% nie bylo w manualu napisane jednoczesne uzycie mysql_query() i nagle ni stąd ni zowąd obiektu $db
Jak juz mówiłem: wziałeś rozne przyklady w zaden ze sobą sposob nie powiązane i wkleiles na chybil trafil do swojego kodu.

Jak uzywasz mysql_query() to uzywaj funkcji z rodziny mysql_
Do pobrania danych sluzy mysql_fetch_array() - zajrzyj do manuala


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

"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
gOdi_1991
post 7.05.2010, 09:43:32
Post #15





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 5.05.2010

Ostrzeżenie: (30%)
XX---


wiesz Manual jest w języku angielskim ciężko dla kogoś kto uczy się Niemieckiego od podstawówki i angielskiego nie widział na oczy a jakiś badziewny rosyjski ... Ja proszę o głupi przykład tylko bo wczoraj do 3 w nocy rozkminiałem ten manual i wiesz ? nic ... NIC nie działało a jak działało to nie dało się uporządkować danych w tabelkach bo wszystko na 1 zmiennej działało co było irytujące ;/
Go to the top of the page
+Quote Post
nospor
post 7.05.2010, 09:48:31
Post #16





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




kod php wyglada tak samo niezaleznie czy to niemiecki czy angielski...

Miales dobre uzycie pobierania z bazy danych:
Twoj kod z paru postów wczesniej:
  1. $result = mysql_query("SELECT id, title, value_1, value_2, img FROM news ORDER BY id DESC")
  2. or die("Niepoprawne zapytanie MySQL");
  3. $number = mysql_num_rows($result);
  4.  
  5. while ($news = mysql_fetch_array($result))
  6. {
  7. //......
  8. }

I nagle ni stad ni zowad rzucasz te dobre pobieranie danych i bez sensu przechodzisz na $db->getAssoc($result).
Masz sie trzymac tamtego kodu i w nim robic poprawki, które tu ci juz gothye podrzucal.


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

"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
gOdi_1991
post 7.05.2010, 09:50:44
Post #17





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 5.05.2010

Ostrzeżenie: (30%)
XX---


jego poprawki nic nie wyświetlały a jak mi coś wyświetlało to po prostu 1 rekord albo 5 takich samych ;/
Go to the top of the page
+Quote Post
nospor
post 7.05.2010, 09:53:27
Post #18





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




Az przejrzalem jeszcze raz jego poprawki:
są bardzo dobre. Widac ty jak zwykle coś źle przepisales.

  1. while ($news = mysql_fetch_assoc($result))
  2. {
  3. $tablica[] = $news ;
  4.  
  5.  
  6. }
  7. $smarty->assign('news',$tablica);


a potem w szablonie przy pomocy FOREACH do ktorego juz ci linka dalem sobie odbieraj dane z tablicy.


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

"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
Zyx
post 7.05.2010, 09:55:00
Post #19





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

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


Goldi -> Wybacz, ale ręce opadają przy takiej argumentacji... niemieckiego się uczy, więc olewa manuala mimo iż i do PHP, i do Smarty istnieje bardzo dobra dokumentacja właśnie po niemiecku....

http://docs.php.net/manual/de/
http://www.smarty.net/manual/de/

nospor dał Ci radę... posiedź trochę nad zrozumieniem tego kodu:

http://pl.wikibooks.org/wiki/PHP

jak będziesz tak wklejać na chybił trafił bez zrozumienia, to ani Ty nigdzie nie dojdziesz, ani nawet nie mamy jak Ci pomóc, bo jak pomagać komuś, kto nie rozumie nawet po polsku tego, co się do niego pisze?

Ten post edytował Zyx 7.05.2010, 09:56:04


--------------------
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
gOdi_1991
post 7.05.2010, 10:00:59
Post #20





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 5.05.2010

Ostrzeżenie: (30%)
XX---


nie rozumiem działania tego FOREACH nie wiem skąd się co bierze i co ważniejsze ja potrzebuje mieć do ustawienia takie parametry jak "max=" itp i swobodną operacje zmiennymi każda osobno nie jedna za wszystkie nagle ;/

jeden głupi przykład i zrozumiem ... ja sie ucze na przykładach najszybciej i najskuteczniej
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Closed 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: 14.08.2025 - 13:21