Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Tworzenie drzewek
snerf
post
Post #1





Grupa: Zarejestrowani
Postów: 74
Pomógł: 3
Dołączył: 30.03.2014

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


Witam,

Mam kod na tworzenie drzewka np komentarzy itp:
  1. function drzewoKategorii($pdo, $prefix_mysql, $rodzic='0', $poziom = '0')
  2. {
  3. global $tablica;
  4. GLOBAL $id_news;
  5. static $tablica;
  6. global $lp;
  7. static $lp;
  8. $stmt = $pdo -> prepare('SELECT * FROM `'.$prefix_mysql.comments.'` WHERE comment = :id_newsa AND qoute_id = :id_news ORDER BY time ASC');
  9. $stmt -> bindValue(':id_newsa', 'news_'.$id_news, PDO::PARAM_INT);
  10. $stmt -> bindValue(':id_news', $rodzic, PDO::PARAM_INT);
  11. $stmt -> execute();
  12. while($wiersz = $stmt -> fetch())
  13. {
  14. $lp++;
  15. $tablica[$lp] = array(id=>$wiersz['id'], content=>htmlentities($wiersz['content']), poziom=>$poziom, datetime=> $wiersz['time'],author=>$wiersz['author']);
  16. drzewoKategorii($pdo,$prefix_mysql, $wiersz['id'], $poziom+1);
  17. }
  18. return $tablica;
  19. }



Czy uważacie że przy większej bazie danych ten kod by się nie spisał? Bo działa w pętli?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
snerf
post
Post #2





Grupa: Zarejestrowani
Postów: 74
Pomógł: 3
Dołączył: 30.03.2014

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


@nospor
Niby tak ale gryzie mnie wyświetlanie tego w szablonach.

Chciałbym zrobić to jak najładniej bo wychodzą teraz 4 pętle.
Wiem jak użyć jednej ale to mi przysporzy kolejnego problemu, postaram się go rozwiązać sam (IMG:style_emoticons/default/smile.gif)


Dobra dzięki za info o rekurencji i pozdrawiam (IMG:style_emoticons/default/smile.gif)




@edit
Niemogę sobie poradzić z tym problemem a za dużo godzin spędziłem nad tym więc napisze.

Chciałbym zminimalizować kod w szablonach{twig} do wyświetlania np komentarzy z wyżej wymienionej funkcji tworzących drzewka:

  1. {% for comment1 in file.comments %}
  2. <div style="width:870px;">
  3. <b><a href="profil-{{comment1.author|get_username}}.html">{{comment1.author|get_username}}</a></b> - {{comment1.datetime|date("H:i d-m-Y")}}<br>
  4. {{comment1.content}}<br>
  5. <a href="news-{{file.get_actual}}-{{file.get_actual3}}-{{comment1.id}}.html#answer"><i><font size="2">[odpowiedz]</font></i></a>
  6. </div>
  7. {% for comment2 in comment1.children %}
  8. <div style="width:800px;margin-left:70px;">
  9. <b><a href="profil-{{comment2.author|get_username}}.html">{{comment2.author|get_username}}</a></b> - {{comment2.datetime|date("H:i d-m-Y")}}<br>
  10. {{comment2.content}}<br>
  11. <a href="news-{{file.get_actual}}-{{file.get_actual3}}-{{comment2.id}}.html#answer"><i><font size="2">[odpowiedz]</font></i></a>
  12. </div>
  13. {% for comment3 in comment2.children %}
  14. <div style="width:730px;margin-left:140px;">
  15. <b><a href="profil-{{comment3.author|get_username}}.html">{{comment3.author|get_username}}</a></b> - {{comment3.datetime|date("H:i d-m-Y")}}<br>
  16. {{comment3.content}}<br>
  17. <a href="news-{{file.get_actual}}-{{file.get_actual3}}-{{comment3.id}}.html#answer"><i><font size="2">[odpowiedz]</font></i></a>
  18. </div>
  19.  
  20. {% endfor %}
  21. {% endfor %}
  22. {% endfor %}


Wiem że kod brzydki, za każdym razem gdy chce zejść w dół musze tworzyć nową pętle (IMG:style_emoticons/default/thumbsdownsmileyanim.gif)

Ten post edytował snerf 31.03.2014, 14:04:46
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 14:15