Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] pomoc przy mapowaniu strony
Micchaleq
post
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 4
Dołączył: 13.10.2009

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


Witam serdecznie,

zaczynam swoją przygodę od jakiegoś czasu z PHP/MYSQL .
Mój problem polega na rozwiązaniu problemy jak wykonać bazę danych a następnie kod php
w przypadku kiedy
na stronie ( w sklepie ) zamierzam mieć Producentów oraz Kategorie danego produktu


a w kodzie PHP w niedalekiej przyszłości chciałbym utworzyć linkowanie więc:

robie 2 zakładki KATEGORIE || PRODUCENCI
i teraz cały moj problem

Więc przypuśćmy ze mamy 3 tabele w myqsl produkt, producent i kategoria ( oczywiście produkt musi w tym przypadku przechowywac id_produktu oraz id_kategori )

jeżeli zostanie wybrana jakaś kategoria aby zostali wyświetleni producenci aby można było zawęzić wyszukiwanie.
Jak wybierzemy producenta aby zostały wyświetlone kategorie by znów zawęzić wyszukiwanie.

Należy pamiętać ty tylko o tym, że już przy wybraniu producentów bądź kategorie ( krok 1 ) należy wyświetlić wszystkie wyniki, ale chyba wiem jak to zrobić poprzez porostu id w linku. i jezeli to będzie id_kat to wyswietlamyy wszystkie o tych id_kat i odwrotnie

Prosze o pomoc i podanie przykładowego zapytania mysql przez php.

wydaje mi się ze trzeba będzie tu użyć IF
tylko trzeba by sprawdzić czy przeglądarka przesłała id_kategori lub czy id_producenta lub to i to tylko jak to zrobić?


Ten post edytował Micchaleq 9.08.2010, 14:03:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Micchaleq
post
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 4
Dołączył: 13.10.2009

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


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?

  1. <?php
  2. include("../admin/global.php");
  3. baza();
  4. global $mysqli;
  5.  
  6. $wyswietlany_blok = "<h1>Moje kategorie</h1>
  7. <p>Wybierz kategorię, aby zobaczyć artykuły.</p>";
  8.  
  9. // najpierw pokazuje kategorie
  10. $pobierz_prod_sql = "SELECT id, nazwa_prod FROM
  11. sklep_prod ORDER BY nazwa_prod";
  12. $pobierz_prod_rez = mysqli_query($mysqli, $pobierz_prod_sql)
  13. or die(mysqli_error($mysqli));
  14.  
  15. $kategorie_sql = "SELECT id, nazwa_kat FROM sklep_kat";
  16. $kategorie_rez = mysqli_query($mysqli, $kategorie_sql) or die (mysql_error($mysqli));
  17.  
  18. if (mysqli_num_rows($pobierz_prod_rez) < 1) {
  19. $wyswietlany_blok = "<p><em>Nie istnieją żadne kategorie.</em></p>";
  20. } else {
  21. while ($prod = mysqli_fetch_array($pobierz_prod_rez)) {
  22. $id_prod = $prod['id'];
  23. $nazwa_prod = strtoupper(stripslashes($prod['nazwa_prod']));
  24.  
  25.  
  26. $wyswietlany_blok .= "<p><strong><a href=\"".$_SERVER["PHP_SELF"].
  27. "?id_prod=".$id_prod."\">".$nazwa_prod."</a></strong></p>"; // WYSWIETLA WSZYSTKIE KATEGORIE
  28.  
  29.  
  30. if (isset($_GET["id_prod"])) { //POCZATEK SPRAWDZANIA CZY JEST ID_PROD
  31. if ($_GET["id_prod"] == $id_prod) {
  32. $get_kat_sql = "SELECT * FROM
  33. produkty WHERE id_prod = '".$id_prod."'
  34. ORDER BY nazwa_prod";
  35. $get_kat_rez = mysqli_query($mysqli, $get_kat_sql)
  36. or die(mysqli_error($mysqli)); //KONIEC
  37.  
  38. if (mysqli_num_rows($get_kat_rez) < 1) { // WYŚWIETLA WSZYSTKIE KATEGORIE DLA PRODUCENTA PRODUCENTA
  39. $wyswietlany_blok = "<p><em>Nie ma artykułów w tej
  40. kategorii.</em></p>";
  41. } else {
  42. $wyswietlany_blok .= "<ul>";
  43. while ($kat = mysqli_fetch_array($kategorie_rez)) {
  44. $id_kat = $kat['id'];
  45. $nazwa_kat = $kat['nazwa_kat'];
  46. $wyswietlany_blok .= "<li><p><strong><a href=\"".$_SERVER["PHP_SELF"].
  47. "?id_prod=".$id_prod."?id_kat=".$id_kat."\">".$nazwa_kat."</a></strong></p></li>";
  48. }
  49. $wyswietlany_blok .= "</ul>"; // KONIEC WYSWIETLANIA PRODUKTÓW DANEGO PRODUCENTA
  50.  
  51. if (isset($_GET["id_prod"]) && isset($_GET["id_kat"])) { //POCZATEK
  52. if ($_GET["id_prod"] == $id_prod && $_GET["id_kat"] == $id_kat) {
  53. $get_items_sql = "SELECT * FROM
  54. produkty WHERE id_prod = '".$id_prod."' AND id_kat = '".$id_kat."'
  55. ORDER BY nazwa_prod";
  56. $get_items_rez = mysqli_query($mysqli, $get_items_sql) or die(mysqli_error($mysqli)); //KONIEC
  57. if (mysqli_num_rows($get_items_rez) < 1) {
  58. $wyswietlany_blok2 = "<p><em>Nie ma artykułów w tej kategorii.</em></p>";
  59. } else {
  60. $wyswietlany_blok2 = "<ul>";
  61. while ($items = mysqli_fetch_array($get_items_rez)) {
  62. $id_art = $items['id'];
  63. $nazwa_art = stripslashes($items['nazwa_prod']);
  64. $wyswietlany_blok2 .= "<li>".$nazwa_art."</li>";
  65. }
  66. $wyswietlany_blok2 .= "</ul>";
  67. }
  68. mysqli_free_result($get_items_rez);
  69. }
  70. }
  71. }
  72. }
  73. }
  74.  
  75. }
  76.  
  77. }
  78. // uwalnia pamięć
  79. mysqli_free_result($pobierz_prod_rez);
  80. // zamyka połączenie z bazą
  81. mysqli_close($mysqli);
  82. ?>
  83. <html>
  84. <head>
  85. <META http-equiv=content-type content="text/html; charset=iso-8859-2">
  86. <title>My Categories</title>
  87. </head>
  88. <body>
  89. <?php echo $wyswietlany_blok; ?>
  90. <?php echo $wyswietlany_blok2; ?>
  91. </body>
  92. </html>



W tych linijkach najprawdopodobnie jest bład :
  1. if (isset($_GET["id_prod"]) && isset($_GET["id_kat"])) { //POCZATEK
  2. if ($_GET["id_prod"] == $id_prod && $_GET["id_kat"] == $id_kat) {
  3. $get_items_sql = "SELECT * FROM
  4. produkty WHERE id_prod = '".$id_prod."' AND id_kat = '".$id_kat."'
  5. ORDER BY nazwa_prod";
  6. $get_items_rez = mysqli_query($mysqli, $get_items_sql) or die(mysqli_error($mysqli)); //KONIEC
  7. if (mysqli_num_rows($get_items_rez) < 1) {
  8. $wyswietlany_blok2 = "<p><em>Nie ma artykułów w tej kategorii.</em></p>";
  9. } else {
  10. $wyswietlany_blok2 = "<ul>";
  11. while ($items = mysqli_fetch_array($get_items_rez)) {
  12. $id_art = $items['id'];
  13. $nazwa_art = stripslashes($items['nazwa_prod']);
  14. $wyswietlany_blok2 .= "<li>".$nazwa_art."</li>";
  15. }
  16. $wyswietlany_blok2 .= "</ul>";
  17. }
  18. mysqli_free_result($get_items_rez);
  19. }
  20. }



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.

Ten post edytował Micchaleq 11.08.2010, 09:17:35
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: 9.10.2025 - 16:08