Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> Parser szablonów
Riklaunim
post 21.12.2008, 23:35:38
Post #21





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


Cytat(Crozin @ 22.12.2008, 01:06:11 ) *
Czy jeżeli założę, ża taka osoba jest w wystarczającym stopniu inteligenta by zrozumieć, że to co jest pomiędzy <?php, a ?> to coś czego ma nie ruaszć?


Jak chcesz możesz stosować szablony z PHP, ja wolę mieć w szablonach prostą szablonową składnię "trzymającą" porządek i w ładny sposób oferującą dziedziczenie szablonów, czy obsługę bloków (i nie chodzi tu o to że front-end designer nie wie co to PHP/Python, po prostu server side jest wyraźnie oddzielony od client side).


Cytat
POMOCY!!

A wiesz że są funkcje zwracające treść błędu zapytania? Użyj to się dowiesz co jest źle, inaczej to do wróżki można sobie pójść. smile.gif

Ten post edytował Riklaunim 21.12.2008, 23:36:48


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post
akurczyk
post 21.12.2008, 23:59:00
Post #22





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


Niema żadnego błądu, tylko niewiem co napisać zobacz co jest w drugim zapytaniu. Skąd wziąść identyfiaktor kategorii forum w skrypcie?questionmark.gif

Wiem że są funkcje, ale zapytanie jest dobrze skonstruowane więc nie wywala żadnych błędów. Jednak zamiast POMOCY w zapytaniu wolał bym mieć identyfikator kategorii forum. Jeśli zamiast tego podstawię 1 to w pierwszej i drugiej kategorii będą fora z pierwszej kategorii, jeśli podstawię 2 to będą z drugiej, a ja chciałbym aby w pierwszej były z pierwszej a w drugiej z drugiej. POMOCY!!!


--------------------
Pozdrawiam
Aleksander Kurczyk
Porady dla webmasterów
Go to the top of the page
+Quote Post
Riklaunim
post 22.12.2008, 00:17:54
Post #23





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


Coś jakby musisz umieścić zapytania o fora z danej kategorii w pętli pobierania kategorii. Coś w stylu:
Kod
while($rekord = mysql_fetch_array($zapytanie)) {

$zapytanie2 = mysql_query("SELECT * FROM fora WHERE kategoria=".$rekord['id']." ORDER BY tytul");
while($rekord2 = mysql_fetch_array($zapytanie2)) {
    $tablica2[] = $rekord2;
}

    $tablica[] = array($rekord, $tablica2);
}


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post
akurczyk
post 22.12.2008, 10:47:23
Post #24





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


http://www.codemaster2222.yoyo.pl/skrypt.php - niedziała: wyświetla wszystkie fora w każdej kategorii.


--------------------
Pozdrawiam
Aleksander Kurczyk
Porady dla webmasterów
Go to the top of the page
+Quote Post
Riklaunim
post 22.12.2008, 12:35:00
Post #25





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


Pomyśl trochę. Jeżeli pobiera wszystkie fora to znaczy że warunek WHERE jest błędny. Zakładając że masz relację jeden do wielu w tabeli for powinna być kolumna z numerem ID danej kategorii - i wstawiając w warunku where id obecnie przemiatanej kategorii musi zadziałać winksmiley.jpg

Dla przykładu fragment struktury mojego forum:
Kod
CREATE TABLE IF NOT EXISTS `rk_category1` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `order` smallint(5) unsigned NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

CREATE TABLE IF NOT EXISTS `rk_forum1` (
  `id` int(11) NOT NULL auto_increment,
  `category_id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `description` varchar(255) NOT NULL,
  `topics` int(10) unsigned NOT NULL,
  `posts` int(10) unsigned NOT NULL,
  `lastposter` varchar(255) default NULL,
  `lasttopic` varchar(255) default NULL,
  `modification_date` datetime NOT NULL,
  `order` smallint(5) unsigned NOT NULL,
  `use_prefixes` tinyint(1) NOT NULL,
  `allow_anonymous` tinyint(1) NOT NULL,
  `use_moderators` tinyint(1) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `rk_forum1_category_id` (`category_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Tabela rk_forum1 ma kolumnę "category_id" przechowującą wartość "id" kategorii (rk_category1), do której jest przypisane smile.gif


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post
akurczyk
post 22.12.2008, 12:52:56
Post #26





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


Jak to ma działeć to ja wie, przecież jak robiłem to samo tylko że w praserże to działało.
Skrytp:
  1. <?php
  2. mysql_connect("mysql2.yoyo.pl","db723710","----");
  3. mysql_select_db("db723710");
  4. mysql_query("SET NAMES utf8");
  5. mysql_query("SET CHARACTER_SET utf8_unicode_ci");
  6. $zapytanie = mysql_query("SELECT * FROM kategorie ORDER BY tytul");
  7. while($rekord = mysql_fetch_array($zapytanie)) {
  8.    $tablica[] = $rekord;
  9.    $zapytanie2 = mysql_query("SELECT * FROM fora WHERE kategoria=\"".$rekord['identyfikator']."\" ORDER BY tytul");
  10.    while($rekord2 = mysql_fetch_array($zapytanie2)) {
  11.        $tablica2[] = $rekord2;
  12.    }
  13. }
  14. include("szablon.php");
  15. ?>

Skrypt najpierw pobiera wszystkie fora z kategorii 1, dopisuje je do tablicy, a puźniej wszystkie z kategorii 2, i też dopisuje je do tablicy.

Szablon:
  1. <title>Forum</title>
  2. </head>
  3. <?php foreach($tablica as $rekord): ?>
  4. <h2><?php echo $rekord["tytul"]; ?></h2>
  5. <?php foreach($tablica2 as $rekord2): ?>
  6. <h3><a href="forum.php?forum=<?php echo $rekord2["identyfikator"]; ?>"><?php echo $rekord2["tytul"]; ?></a></h3>
  7. <p><?php echo $rekord2["opis"]; ?></p>
  8. <?php endforeach; ?>
  9. <?php endforeach; ?>
  10. </body>
  11. </html>


--------------------
Pozdrawiam
Aleksander Kurczyk
Porady dla webmasterów
Go to the top of the page
+Quote Post
Riklaunim
post 22.12.2008, 13:52:17
Post #27





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


Po wierszu z $zapytanie2 możesz dać $tablica2[] = array(); żeby wyczyścić tablicę przed zapełnieniem ją kolejnymi forami. Po zakończeniu pętli dla $zapytanie2 musisz tą $tablica2 dodać do głównej tablicy kategorii np:
Kod
$tablica[] = array($rekord, $tablica2);

Usuwając zarazem $tablica[] = $rekord;. Dzięki temu masz jedną tablicę do przekazania do szablonu. $tablica[ELEMENT][0] to dane kategorii, a $tablica[ELEMENT][1] to tablica z forami dla tej kategorii - czyli w szablonie dajesz foreach as $cośtam na $tablica i w nim kolejnego foreach na $cośtam[1] smile.gif


--------------------
Biblioteki: Skrypty, CMS | Kurs PHP | Python
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
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: 10.06.2024 - 05:21