![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 25.11.2016 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Od paru dni pracuje nad małym CMS (projekt szkolny). Pomimo że jestem początkujący w PHP to idzie mi całkiem sprawnie. Teraz napotkałem mały problem, na stronie mam zakładkę kategorie, w której są wszystkie kategorie jakie doda użytkownik, po kliknięciu w którąś, skrypt przenosi na jej wygenerowaną stronę (Pewnie wiecie o co mi chodzi) Teraz chce, aby na tych stronach wyświetlały się posty do których jest przydzielona dana kategoria, ale nie wiem jak się za to zabrać, napisałem już coś, ale skrypt wyświetla mi ciągle te same posty nie ważne w jakiej kategorii jestem. Jakieś wskazówki? :/ Wyświetlanie postów: CODE equire_once("admin/db.php"); $stmt = $dbh->prepare('SELECT * FROM news ORDER BY category'); $stmt -> execute(); while($result = $stmt->fetch(PDO::FETCH_ASSOC)) { $category = $result['category']; $id = $result['id']; require_once("admin/db.php"); $stmt = $dbh->prepare('SELECT * FROM news WHERE category=:category'); $stmt->bindValue(":category", $category); $stmt -> execute(); while($result = $stmt->fetch(PDO::FETCH_ASSOC)) { $button = '<button type="submit" name="send" class="btn btn-default">Czytaj dalej</button>'; include("admin/script/shorter.php"); echo '<h1>'.$result['title'].'</h1>Autor:'.$result['author'].'</br>Data: '.$result['date'].'<p>'.substr($result['tekst'], 0, 100).''.$kr.'</br>'.'<a href="news.php?id='.$result["id"].'"'.$button.'</a>'.'</p>'; } } Generowanie linku i przenoszenie: CODE <?php
require_once("admin/db.php"); $stmt = $dbh->prepare('SELECT * FROM category ORDER BY id'); $stmt -> execute(); while($result = $stmt->fetch(PDO::FETCH_ASSOC)) { echo '<li><a href="category.php?id='.$result['id'].'" name="category">'.$result['category'].'</a></li>'; } ?> |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 18 Dołączył: 5.02.2016 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
Musisz przypisać każdemu newsowi ID kategorii.
Tutaj masz odpowiedź:
Adres będzie: category.php?id=ID KATEGORII Tylko tutaj jest za mało szczegółów. Jak wygląda baza? Konkretnie baza newsów. Podaj jeden przykładowy wpis z bazy dla jakiejś kategorii. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 25.11.2016 Ostrzeżenie: (0%) ![]() ![]() |
] Adres będzie: category.php?id=ID KATEGORII Ale przecież tak mam CODE '<li><a href="category.php?id='.$result['id'].'" name="category">'.$result['category'].'</a></li>'; Czyli te id kategorii o którym mówisz, to te $result['id'] Baza: CODE CREATE TABLE `news` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `title` VARCHAR( 30 ) NOT NULL , `date` DATETIME NOT NULL , `author` VARCHAR( 15 ) NOT NULL `category` VARCHAR( 15 ) NOT NULL , `text` LONGTEXT NOT NULL ) ENGINE = MYISAM ; |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 18 Dołączył: 5.02.2016 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
W wyświetlaniu postów 2x dałeś
Poza tym jeśli chcesz wyświetlać posty tylko z danej kategorii, to musisz dać warunek w zapytaniu do bazy. Ponadto nadpisujesz drugą pętlą. Masz
a w tej pętli kolejna pętla:
i nadpisujesz danymi z drugiego zapytania. Daj w drugiej pętli
Dalej: wykorzystujesz $_GET['id'] (link: category.php?id=blabla) a w kodzie w ogóle tego nie ma. Przy wyświetlaniu musisz uwzględnić $_GET['id'], przykład:
Dodatkowo musisz zrobić zabezpieczenie, jak np. ktoś wpisze samo strona.pl/category.php. Wtedy dajesz:
Ten post edytował Niree 30.11.2016, 17:16:07 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 00:18 |