Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie z tablicy obrazka i użycie go jako odnośnik do galerii
Beast_Metak
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.11.2010

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


Witam serdecznie, na wstępie dodam, że moja wiedza na temat php i programowania stron jest dość nikła.

Mam pewien problem, posiadam cms bazujący na smarty (nie mojego autorstwa) i staram się go modyfikować tak aby spełniał moje wymogi. Problem mój jest związany z tworzeniem listy podstron dodanych do kategorii. Skrypt tworzy listę tekstową jednak chciałbym aby w momencie gdy do kategorii dodana jest galeria jako odnośnik ustawiał on obrazek z danej galerii (pierwszy albo losowy nie ma to dla mnie większego znaczenia) a nie tylko tekst.

kod głównej templatki wyświetlającej zawartość tablic:

  1. <link href="../css/global_view.css" rel="stylesheet" type="text/css" />
  2. {include file="global.header.tpl"}
  3. <div id="pg">
  4. {php}
  5. require('db.php');
  6. include('menu.php');
  7. {/php}
  8. <div id="content">
  9. <div class="txt">
  10. {if is_numeric($smarty.get.id) && isset($smarty.get.id)}
  11. {foreach from=$view item=view}
  12. {if $view.visible == '1'}
  13. {if $view.displaytitle == '1'}
  14. <b>{$view.title}</b><hr />
  15. {/if}
  16. {$view.content}
  17. {else}
  18. Podana strona nie istnieje.
  19. {/if}
  20. {/foreach}
  21. {elseif is_numeric($smarty.get.cid) && isset($smarty.get.cid)}
  22. {if $vlv == '1'}
  23. {foreach from=$cview item=cview}
  24. {if $cview.visible == '1'}
  25. {if $cview.title == not null}
  26. <a href="view.php?id={$cview.id}">{$cview.title}</a><br />
  27. {elseif $cview.nazwa == not null}
  28. <a href="view.php?gid={$cview.gid}">{$cview.nazwa}</a><br /> //tutaj wyświetlana jest nazwa galerii jeśli jakaś istnieje
  29. {/if}
  30. {/if}
  31. {/foreach}
  32. {else}
  33. Podana strona nie istnieje.
  34. {/if}
  35. {elseif is_numeric($smarty.get.gid) && isset($smarty.get.gid)}
  36. <div id="gallery">
  37. {foreach from=$galeria item=wo}
  38. <table border="2" cellspacing="0" cellpadding="0" width="197" height="197">
  39. <tr>
  40. <td align="center" bgcolor="#333333" bordercolor="#000000"> <a href="gallery/{$wo.nazwa}"/><img src="gallery/th/{$wo.nazwa}" alt="" border="0" align="middle"/></a></td>
  41. </tr>
  42. </table>
  43. {/foreach}
  44. </div>
  45. {/if}
  46. </div>
  47. <div class="line">&nbsp;</div>
  48. </div>
  49. {include file="global.footer.tpl"}
  50. </div>


Potrzebuję zmodyfikować linię 28 kodu. I właśnie nie wiem jak zmusić skrypt aby pobierał obrazek z konkretnej galerii i ustawiał go jako odnośnik do niej. Informacje o obrazkach z galerii są w bazie danych, która wygląda następująco:

articles (id, title, content, displaytitle, visible, menu, cid)
categories (cid, name, menu, visible)
galeria (gid, nazwa, menu, visible, cid)
obrazki (oid, nazwa, gid)

Za pomocą pętli foreach wypisywane są wszystkie elementy w kategorii, które są do niej przypisane za pomocą "cid". I tutaj odnośnik jeśli jest to artykuł posiada parametr "$cview.title" ze względu na wartość w tablicy i analogicznie dla galerii "$cview.nazwa".

Jak poradzić sobie z tym kawałkiem kodu i czego należy użyć aby uzyskać wymagany efekt? Będę wdzięczny za sugestię, porady czy też przykłady.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Pokaż zapytanie, które pobiera kategorie lub możesz je sam zmodyfikować dodając JOIN LEFT galeria ON(galeria.gid=kategorie.gid). Następnie dodajesz warunek do templatki

{if $image} <img src={$galery.src}> {/if} [ to tylko przykład smile.gif ]
Go to the top of the page
+Quote Post
Beast_Metak
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.11.2010

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


Kategorię pobiera kod z linii 21

  1. {elseif is_numeric($smarty.get.cid) && isset($smarty.get.cid)}


a jeszcze takie pytanie do tego "galeria.gid=kategorie.gid" to jest przypisanie zmiennej czy jak? bo galeria.gid to zapewne odwołanie do gid z galerii ale np w kategorii nie ma gid więc tak nie bardzo czaję :/



Zabrałem się już za analizowanie JOIN LEFT smile.gif mam nadzieję, że mi się uda, po rozwiązaniu swojego problemu dodam rozwiązanie smile.gif Pozdrawiam

Ten post edytował Beast_Metak 28.12.2010, 16:35:07
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Pokaż zapytanie ze skryptu PHP nie .tpl - innymi słowy pokaż część kodu w której wykonujesz zapytanie do bazy danych [zapewne do mysql]

Ten post edytował CuteOne 29.12.2010, 08:16:53
Go to the top of the page
+Quote Post
Beast_Metak
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.11.2010

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


  1. //Pobieranie kategorii
  2. $qc = "SELECT * FROM categories WHERE menu='1' AND visible='1'";
  3. $rc = mysqli_query($db,$qc);
  4. while ($crows = mysqli_fetch_assoc($rc))
  5. {
  6. $crow[] = $crows;
  7.  
  8. //Pobranie cid, zapytanie o arrtykuly nalezace do cid, ktore beda wywietlone w menu
  9. $podkatid = $crows['cid'];
  10. $qpodkat = "SELECT * FROM articles WHERE visible='1' AND cid=$podkatid";
  11. $rpodkat = mysqli_query($db,$qpodkat);
  12. while ($cpodkat = mysqli_fetch_assoc($rpodkat))
  13. {
  14. $katrows[] = $cpodkat;
  15. }
  16. $smarty->assign('catmenu',$katrows);
  17.  
  18. //Pobranie cid, zapytanie o galeria nalezace do cid, ktore beda wyswietlone w menu
  19. $podkatid = $crows['cid'];
  20. $qpodkat = "SELECT * FROM galeria WHERE visible='1' AND cid=$podkatid";
  21. $rpodkat = mysqli_query($db,$qpodkat);
  22. while ($cpodkat = mysqli_fetch_assoc($rpodkat))
  23. {
  24. $katrows[] = $cpodkat;
  25. }
  26. $smarty->assign('catmenu',$katrows);
  27. }
  28. $smarty->assign('cmenu',$crow);
Go to the top of the page
+Quote Post
CuteOne
post
Post #6





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


To jest to zapytanie o którym wcześniej mówiłem:
  1. $qpodkat = "SELECT * FROM galeria WHERE visible='1' AND cid=$podkatid";

doczep do niego JOIN LEFT pi razy drzwi tak jak opisałem
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: 20.08.2025 - 11:45