Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP][Smarty] Przekazanie ID...
Forum PHP.pl > Forum > PHP
eravpl
Witajcie....
borykam sie z problemem takim iz chcialbym ponizszy kod php przekształcic na smarty tylko pytanie jak...?

plik index.php
  1. $query2 = "SELECT * FROM news";
  2. $result = mysql_query($query2);
  3.  
  4. while($row=mysql_fetch_array($result)) {
  5. echo "<b><a href=view.php?id={$row['news_id']}>{$row['news_title']}</b><br>";
  6. }


plik view.php
  1. $id = (int)$_GET['id'];
  2.  
  3. $query2 = "SELECT * FROM news WHERE news_id = $id";
  4. $result = mysql_query($query2);
  5.  
  6. while($row=mysql_fetch_array($result)) {
  7. echo "<b>{$row['news_id']}</b><br>" .
  8. "{$row['news_title']} <br><br>";
  9.  
  10. }


powiem tak: w takiej postaci dziala natomiast w mojej postaci smarty niestety nie...
jest ktos w stanie pomoc.... z gory dziekuje
jarexx
Niejasno opisales w czym tkwi problem.
Moze trzeba po prostu wynik dzialania petli zapisac do zmiennej i potem ta zmienna przekazac do szablonu.
  1. $query2 = "SELECT * FROM news";
  2. $result = mysql_query($query2);
  3.  
  4. while($row=mysql_fetch_array($result)) {
  5.  
  6. $content.="<b><a href=view.php?id={$row['news_id']}>{$row['news_title']}</b><br>";
  7.  
  8. }
  9.  
  10. $smarty->assign('newsy', $content);
  11. $smarty->display('index.tpl');
eravpl
faktycznie... to tak. To co powyzej zostało napisane chcialbym przekształcic na smarty... Otóż mam juz wyswietlanie "krotkich "nowosci teraz kwestią jest wyswietlenie w tym samym pliku szablonu "blog.tpl" nowosci w calosci...

tworze sobie link ktory jest w postaci juz URLa. Po kliknieciu np w link Wiecej... "3 newsa" dostaje:
  1. blog.php?news=3&action=newsfull


ten link mam utworzony w ten sposob
czyli....: w pliku blog.tpl
  1.  
  2. {foreach name=news from=$news item=item}
  3. <h1>{$item.news_title}</h1>
  4. ..........
  5.  
  6. <a href="blog.php?news={$item.news_id}&amp;action=newsfull">Więcej...</a>
  7. {/foreach}
  8.  


a w pliku blog.php tworze sobie dowiązanie
  1. // powyzej reszta kodu do wyswietlania newsow
  2.  
  3. // jezeli zostanie wykonana akcja
  4. if(isset($_GET["action"]) && $_GET["action"] == 'newsfull') {
  5. $news_id = (int)$_GET['news_id'];
  6.  
  7. $query = "SELECT * FROM news WHERE news_id = $news_id";
  8. $result = mysql_query($query);
  9.  
  10. while($row = mysql_fetch_array($result)) {
  11. $i["news_id"] = $row["news_id"];
  12. $i["news_title"] = $row["news_title"];
  13. }
  14. $smarty->assign("details", 1);
  15. $smarty->assign("item", $i);
  16. }
  17.  
  18. $smarty->display('blog.tpl'); // wyswietl w TPL

wyswietlene przejscia z krotkiego newsa do calego ma nastapic w sposob taki ze w zmiennej smarty "details" przekazuje calego newsa a w reszcie warunku krotkiego newsa....

  1. {if $details}
  2. // calosc newsa z pobranym wczesniej id z krotkiego newsa
  3. {else}
  4. // krotki news
  5. {/if}



niewiem czy mok sposob myslenia jest ogolnie dobry :/

da sie wogole cos z tym zrobic??
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.