Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Smarty] Generowanie kilku kategorii
Forum PHP.pl > Forum > Przedszkole
GameMaker
Witajcie ! mam problem z wygenerowaniem kilku kategorii dla danego artykułu.

Mój kod :
  1.  
  2. if (! defined ( 'Movie_CMS' )) {
  3. header("HTTP/1.0 404 Not Found");
  4. }
  5. require_once('./classes/Pager.class.php');
  6.  
  7.  
  8. $zz = $db->query("Select * from mpa_movies");
  9. $licz = $db->num_rows($zz);
  10.  
  11. try{
  12. $pager = new Pager('page','http://localhost/filmy/#PAGE#.html');
  13. $pager->SetTotalRecords($licz);
  14. $pager->SetRecordsPerPage(10);
  15. $pager->Make(true);
  16. $pag = $pager->Render();
  17. $start = $pager->GetIndexRecordStart();
  18. $end = $pager->GetIndexRecordEnd();
  19. }
  20. catch (Exception $e) {
  21. echo $e->getMessage();
  22. }
  23.  
  24.  
  25.  
  26. $zapytanie = 'Select * from mpa_movies order by data DESC limit '.$start.','.($end - $start + 1);
  27. $q = $db->query($zapytanie);
  28. $arr = array();
  29. $i = 0;
  30. while($row = $db->fetch_array($q))
  31. {
  32.  
  33. $arr[] = $row['id'];
  34. $arr[] = $row['name'];
  35. $arr[] = $row['data'];
  36. $arr[] = $row['views'];
  37. $arr[] = $row['poster'];
  38. $arr[] = $row['describe'];
  39. $arr[] = $row['easy_url'];
  40. $arr[] = $row['comnum'];
  41. $arr[] = $row['autor'];
  42.  
  43. $c = explode(',',$row['category_id']);
  44. $c = array_filter($c);
  45. $categ = "";
  46. foreach($c as $cc)
  47. {
  48. $categ.= cat($cc);
  49.  
  50.  
  51. }
  52.  
  53. $arr[] = $categ;
  54.  
  55.  
  56.  
  57.  
  58. }
  59. print_r($arr);
  60. $smarty->assign('row',$arr);
  61. $smarty->assign('pager',$pag);
  62.  
  63.  
  64.  



funkcja
  1. function cat($id)
  2. {
  3. global $db;
  4.  
  5. $r = $db->query("Select * from mpa_categories where id ='$id'");
  6.  
  7. if($db->num_rows($r) > 0)
  8. {
  9. $r = $db->fetch_array($r);
  10.  
  11. $category = "<a href='/category/$r[alt_name]'>$r[name]</a>,";
  12.  
  13. }else{
  14.  
  15. $category = "Brak kategorii !,";
  16. }
  17.  
  18. return $category;
  19. }
  20.  



Plik tpl

  1.  
  2. {foreach $row as $con}
  3.  
  4. <div class="content">
  5. <div class="content-headline">{$con.title}</div>
  6. <div class="content-info">Kategoria: <b>{$con.cats}</b> | Wy&#347;wietleń: <b>{$con.views}</b> | Komentarzy <strong>{$con.comnum}</strong> | Doda&#322 : {$con.autor}</div>
  7. <div class="content-poster"><img src="{$con.poster}" alt="2" /></div>
  8. <div class="content-description">{$con.describe}</div>
  9. <div class="content-button">
  10. <div class="button-download"><a href="http://localhost/film/{$con.id}-{$con.easy_url}.html">Ogl&#261daj bez limitu</a></div>
  11. <div class="button-watch"><a href="/link">Ogl&#261daj</a></div>
  12. </div>
  13. </div>
  14. {/foreach}
  15.  
  16. {include file="paginator.tpl"}
  17.  



nospor
A konkretnie jaki masz problem? Wstawiłeś kod, bez zadnego opisu, bez zadnego bledu i myslisz że będziemy wróżyć?

print_r($arr);
coś ci wyświetla?
GameMaker
Z tego kodu to mi drukuje , zamiast tablicy wielopoziomowej :

  1. (
  2. [0] => 19
  3. [1] => Bereavement (2010) [Napisy]
  4. [2] => 2011-09-04 15:15:47
  5. [3] => 2
  6. [4] => <a href="http://kinolive.pl/okladki/c0d5b62be782eea63cdcd8ca33fe3fda.jpg" target="_blank">http://kinolive.pl/okladki/c0d5b62be782eea...8ca33fe3fda.jpg</a>
  7. [5] => 6-letni Martin Bristol zostaje porwany sprzed własnego domu przez psychopatycznego mordercę. Chłopiec dorasta, będąc świadkiem brutalnych morderstw dokonywanych przez swojego przybranego ojca.
  8. [6] => bereavement-2010-napisy
  9. [7] => 0
  10. [8] => Motor
  11. [9] => <a href='/category/horror'>Horror</a>,<a href='/category/komedia'>Komedia</a>,
  12. [10] => 20
  13. [11] => The Wackness (2008) [Lektor]
  14. [12] => 2011-09-04 15:15:47
  15. [13] => 0
  16. [14] => <a href="http://kinolive.pl/okladki/6e88a36740c1bc71aae69722bed477b5.jpg" target="_blank">http://kinolive.pl/okladki/6e88a36740c1bc7...722bed477b5.jpg</a>
  17. [15] => Akcja toczy się w 1994. Skoncentrowana jest na trudnym, nastoletnim dilerze narkotyków oraz zepsutym przez narkotyki psychiatrze. W zamian za leczenie chłopak dostarcza lekarzowi marihuanę. I wszystko wydaje się być w porządku, dopóki pacjent nie zakocha się w córce swojego terapeuty...
  18. [16] => the-wackness-2008-lektor
  19. [17] => 0
  20. [18] => Motor
  21. [19] => <a href='/category/horror'>Horror</a>,<a href='/category/komedia'>Komedia</a>,
  22. )
  23.  
nospor
No bo każdą kolumnę walisz jako nowy element tablicy
while($row = $db->fetch_array($q))
{

$arr[] = $row['id'];
$arr[] = $row['name'];
$arr[] = $row['data'];
$arr[] = $row['views'];
$arr[] = $row['poster'];
$arr[] = $row['describe'];
$arr[] = $row['easy_url'];
$arr[] = $row['comnum'];
$arr[] = $row['autor'];

Tak ma być
while($row = $db->fetch_array($q))
{

$arr[] = $row;


przenosze. Ze smarty to nie ma żadnego związku
GameMaker
Edit :

Zamiast tego :

  1.  
  2.  
  3.  
  4. $arr[] = $row['id'];
  5. $arr[] = $row['name'];
  6. $arr[] = $row['data'];
  7. $arr[] = $row['views'];
  8. $arr[] = $row['poster'];
  9. $arr[] = $row['describe'];
  10. $arr[] = $row['easy_url'];
  11. $arr[] = $row['comnum'];
  12. $arr[] = $row['autor'];
  13.  
  14.  
  15. /////////////////Zamiennik
  16.  
  17. $arr[] = $row;
  18.  
  19.  

Ale jest problem bo moja funkcja ma id kategorii zamieniać na hiperłącza .
Próbowałem tez array_push.

teraz myśle jak do każdej tablicy dodać index z hiperłączami do kategorii danego newsa.


nospor
No to zamieniaj. Nikt ci nie broni. Pomyśl tylko troszkę przy tej operacji
  1. $row['innecos'] = 'innawartosc';
  2. $row['innecos2'] = 'innawartosc2';
  3. $arr[] = $row;
GameMaker
Zrobiłem tak i działa :


  1. while($row = $db->fetch_array($q))
  2. {
  3.  
  4.  
  5.  
  6. $c = explode(',',$row['category_id']);
  7. $c = array_filter($c);
  8. $categ = "";
  9. foreach($c as $cc)
  10. {
  11. $categ.= cat($cc);
  12.  
  13.  
  14. }
  15. $row['category_id'] = substr($categ,0,-1); // usuwamy ostatnie przecinek
  16.  
  17. $arr[] = $row;
  18.  
  19.  
  20.  
  21.  
  22. }
  23.  



Dzięki.
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.