Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Smarty] Problem z WHILE.
Sh4d0v
post 8.05.2011, 15:47:11
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.08.2010

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


Witam.
Tworzę własny skrypt. Taki mój projekt.
I posiadam plik, który wyciąga wszystkie "Drużyny" z bazy i je wypisuje pętlą WHILE w tabelce.
Wszystko działało mi w 1 pliku php połączonym z html w środku.
Postanowiłem użyć smarty.
Po wykonaniu wszystkiego, mam dziwny problem. Otóż, pierw wszystko działało idealnie.
Wyświetlało mi tag drużyny, nazwę, data utworzenia oraz opis.
Teraz zaś, po użyciu smarty, wszystkie te pola zastępuje 1 literka "p".

Oto moje pliki:

druzyny.php
  1. <?php
  2. include(dataDir."config".PHPExt);
  3. $tabela = $dbprefix . 'druzyny';
  4.  
  5. // Smarty
  6. require_once('data/smarty/Smarty.class.php');
  7. $smarty = new Smarty();
  8.  
  9. $smarty -> template_dir = 'templates/';
  10. $smarty -> compile_dir = 'templates_c/';
  11. $smarty -> config_dir = 'configs/';
  12. $smarty -> cache_dir = 'cache/';
  13.  
  14. $query = mysql_query("select * from ".$tabela." order by id_team");
  15. while($rekord = mysql_fetch_array($query)){
  16. $pole[] = $rekord;
  17. }
  18. $smarty -> assign('pole_d', $pole);
  19.  
  20. $smarty -> display('druzyny.tpl');
  21. ?>


druzyny.tpl
  1. <h3>Drużyny</h3>
  2. <div align="center">
  3. <table border="0" cellpadding="0" width="100%" class="okragle-wszystkie-rogi" style="border: 1px solid #999999">
  4. <tr><td bgcolor="#FF9900">
  5. <b><font color=white>Drużyny MyI</font></b>
  6. </td></tr>
  7. {foreach item=poledb from="pole_d"}
  8. <tr>
  9. <td>
  10. <img border="0" align="middle" src=images/flags/pl.gif>
  11. <font color=black><b>[{$poledb.id_team}]{$poledb.nazwa}</b> - (Utworzony: <i>{$poledb.data_utworzenia}</i>) - {$poledb.info}</font>
  12. </td>
  13. </tr>
  14. {/foreach}
  15. </table></div>


Nie wiem, gdzie zrobiłem błąd.
Proszę o jakieś rady i pomoc.

Dziękuje i pozdrawiam
Go to the top of the page
+Quote Post
mlawnik
post 8.05.2011, 17:11:07
Post #2





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

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


Polecam TinyButStrong(TBS), jeżeli jest to mały projekt(+ HTML plugin do TBS).

Tutaj dlaczego



--------------------
Pozdrawiam,
mlawnik

Cytat(nospor)
Jedzmy gówno.... miliony much nie może się przecież mylić
Go to the top of the page
+Quote Post
Sh4d0v
post 8.05.2011, 17:21:34
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.08.2010

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


Projekt mały, a jednocześnie duży.
Bardziej chodziło mi o to iż dla mnie to spore wyzwanie, dla pewnych osób, pracujących w php - prościzna.

Zależy mi na zrobieniu tego prosto w Smarty używają foreach albo section oraz tego "loop".
W smarty zacząłem działać dziś - więc jestem jeszcze zielony.

Jakieś pomysły jak to stworzyć na podstawie tych 2 plików?
Go to the top of the page
+Quote Post
kl4mor
post 9.05.2011, 11:28:40
Post #4





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

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


sprobój tac w php tak:

  1. while($rekord = mysql_fetch_array($query)){
  2. $pole[$rekord['id_team']] = $rekord;
  3. }
Go to the top of the page
+Quote Post
nospor
post 9.05.2011, 11:32:20
Post #5





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Nie: from="pole_d"
a: from=$pole_d

Przecież do FROM zapodaje się tablicę a nie tekst wink.gif

@kl4mor Twoja poprawka nijak nie rozwiązuje problemu. Może go natomiast pogorszyć w przypadku, gdyby id_team nie był unikalny w danej tabeli


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

"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
kl4mor
post 9.05.2011, 11:37:45
Post #6





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

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


@nospor racja nic by nie pomogła, ale zakładałem że jeśli jest w nazwie id to jest to unikalna wartość smile.gif
Go to the top of the page
+Quote Post
nospor
post 9.05.2011, 11:39:59
Post #7





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Tak czy siak dodanie indeksu będącego ID rekordu ma się nijak do problemu wink.gif Dla pętli bez różnicy jest czy tablica ma indeksy "pokolei" czy może też będące konkretnymi liczbami


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

"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
Sh4d0v
post 9.05.2011, 14:15:41
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.08.2010

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


Ogolnie to poradzilem sobie z tym juz wczoraj smile.gif
  1. {section name=team loop=$pole_d}
  2. <tr>
  3. <td>
  4. <img border="0" align="middle" src=images/flags/pl.gif>
  5. <font color=black><b>[{$pole_d[team].tag}]{$pole_d[team].nazwa}</b> - (Utworzony: <i>{$pole_d[team].data_utworzenia}</i>) - {$pole_d[team].info}</font>
  6. </td>
  7. </tr>
  8. {/section}


i
  1. // Zapytanie
  2. $query = mysql_query("select * from ".TEAMS_DB." order by id_team");
  3. while($rekord = mysql_fetch_array($query))
  4. {
  5. $pole[] = $rekord;
  6. }
  7.  
  8. // Dane wyjściowe
  9. $template -> assign('pole_d', $pole);


Dzięki za wszelką pomoc i zainteresowanie smile.gif
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 Wersja Lo-Fi Aktualny czas: 29.03.2024 - 16:34