Witam serdecznie,
trochę się pozmieniało od rana więc wklejam jeszcze raz treść kodu i podaje nowe prostrze jak na początek założenia.
Dla ułatwienia na początek chciałbym poprostu aby skrypt najpierw pokazał mi producentów następnie kategorie i na koncu po wybraniu tego i tego wyświetlił mi produkty o takim id i takiej kat
poniższy skrypt działa prawie dobrze, jednak nie wyświetla tych ostatnich produktów i nie mam pojęcia dlaczego .
Czy mógłby mi ktoś powiedzieć gdzie mam bład?
<?php
include("../admin/global.php");
baza();
$wyswietlany_blok = "<h1>Moje kategorie</h1>
<p>Wybierz kategorię, aby zobaczyć artykuły.</p>";
// najpierw pokazuje kategorie
$pobierz_prod_sql = "SELECT id, nazwa_prod FROM
sklep_prod ORDER BY nazwa_prod";
$pobierz_prod_rez = mysqli_query($mysqli, $pobierz_prod_sql)
or
die(mysqli_error
($mysqli));
$kategorie_sql = "SELECT id, nazwa_kat FROM sklep_kat";
$kategorie_rez = mysqli_query
($mysqli, $kategorie_sql) or
die (mysql_error($mysqli));
if (mysqli_num_rows($pobierz_prod_rez) < 1) {
$wyswietlany_blok = "<p><em>Nie istnieją żadne kategorie.</em></p>";
} else {
while ($prod = mysqli_fetch_array($pobierz_prod_rez)) {
$id_prod = $prod['id'];
$wyswietlany_blok .= "<p><strong><a href=\"".$_SERVER["PHP_SELF"].
"?id_prod=".$id_prod."\">".$nazwa_prod."</a></strong></p>"; // WYSWIETLA WSZYSTKIE KATEGORIE
if (isset($_GET["id_prod"])) { //POCZATEK SPRAWDZANIA CZY JEST ID_PROD if ($_GET["id_prod"] == $id_prod) {
$get_kat_sql = "SELECT * FROM
produkty WHERE id_prod = '".$id_prod."'
ORDER BY nazwa_prod";
$get_kat_rez = mysqli_query($mysqli, $get_kat_sql)
or
die(mysqli_error
($mysqli)); //KONIEC
if (mysqli_num_rows($get_kat_rez) < 1) { // WYŚWIETLA WSZYSTKIE KATEGORIE DLA PRODUCENTA PRODUCENTA
$wyswietlany_blok = "<p><em>Nie ma artykułów w tej
kategorii.</em></p>";
} else {
$wyswietlany_blok .= "<ul>";
while ($kat = mysqli_fetch_array($kategorie_rez)) {
$id_kat = $kat['id'];
$nazwa_kat = $kat['nazwa_kat'];
$wyswietlany_blok .= "<li><p><strong><a href=\"".$_SERVER["PHP_SELF"].
"?id_prod=".$id_prod."?id_kat=".$id_kat."\">".$nazwa_kat."</a></strong></p></li>";
}
$wyswietlany_blok .= "</ul>"; // KONIEC WYSWIETLANIA PRODUKTÓW DANEGO PRODUCENTA
if (isset($_GET["id_prod"]) && isset($_GET["id_kat"])) { //POCZATEK if ($_GET["id_prod"] == $id_prod && $_GET["id_kat"] == $id_kat) {
$get_items_sql = "SELECT * FROM
produkty WHERE id_prod = '".$id_prod."' AND id_kat = '".$id_kat."'
ORDER BY nazwa_prod";
$get_items_rez = mysqli_query
($mysqli, $get_items_sql) or
die(mysqli_error
($mysqli)); //KONIEC if (mysqli_num_rows($get_items_rez) < 1) {
$wyswietlany_blok2 = "<p><em>Nie ma artykułów w tej kategorii.</em></p>";
} else {
$wyswietlany_blok2 = "<ul>";
while ($items = mysqli_fetch_array($get_items_rez)) {
$id_art = $items['id'];
$wyswietlany_blok2 .= "<li>".$nazwa_art."</li>";
}
$wyswietlany_blok2 .= "</ul>";
}
mysqli_free_result($get_items_rez);
}
}
}
}
}
}
}
// uwalnia pamięć
mysqli_free_result($pobierz_prod_rez);
// zamyka połączenie z bazą
mysqli_close($mysqli);
?>
<html>
<head>
<META http-equiv=content-type content="text/html; charset=iso-8859-2">
<title>My Categories</title>
</head>
<body>
<?php echo $wyswietlany_blok; ?> <?php echo $wyswietlany_blok2; ?> </body>
</html>
W tych linijkach najprawdopodobnie jest bład :
if (isset($_GET["id_prod"]) && isset($_GET["id_kat"])) { //POCZATEK if ($_GET["id_prod"] == $id_prod && $_GET["id_kat"] == $id_kat) {
$get_items_sql = "SELECT * FROM
produkty WHERE id_prod = '".$id_prod."' AND id_kat = '".$id_kat."'
ORDER BY nazwa_prod";
$get_items_rez = mysqli_query
($mysqli, $get_items_sql) or
die(mysqli_error
($mysqli)); //KONIEC if (mysqli_num_rows($get_items_rez) < 1) {
$wyswietlany_blok2 = "<p><em>Nie ma artykułów w tej kategorii.</em></p>";
} else {
$wyswietlany_blok2 = "<ul>";
while ($items = mysqli_fetch_array($get_items_rez)) {
$id_art = $items['id'];
$wyswietlany_blok2 .= "<li>".$nazwa_art."</li>";
}
$wyswietlany_blok2 .= "</ul>";
}
mysqli_free_result($get_items_rez);
}
}
Witam ponownie ,
bład był w 2 tworzeniu linku 2 razy było ? a powinno być &
Teraz niestety mam taki problem, że wyświetlane są produkty jedynie z ostatniej kategori danego producenta.