Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]PHP + MySQL + Apache2 - Tworzenie kategorii, W jaki sposób tworzyć przy pomocy PHP, tabele z kategoriami
nama
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.03.2006

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


Cześć,
Chciałbym zrobić stronę, na której będzie można dodawać kategorie oraz produkty. Będzie to wyglądać tak:

-Kategoria 1:
-------Produkt 1,
-------Produkt 2,
-------Produkt 3,

-Kategoria 2:
-------Produkt 1,
-------Produkt 2,
-------Produkt 3,

-Kategoria 3:
-------Produkt 1,
-------Produkt 2,
-------Produkt 3,

Utworzyłem bazę o nazwie "baza1", w której znajdują się dwie tabele: "kat" oraz "poz".

W tabeli "kat" występują następujące pola: "id", "kategoria".
W tabeli "poz" występują następujące pola: "nazwa", "kategoria_kat".

Następnie zabrałem się do pisania skryptu.

(IMG:http://img832.imageshack.us/img832/1407/obrazekp.png)

Problem w tym, że jest to zupełnie nie zautomatyzowane. Za każdym razem, musiałbym do strony dodawać w kodzie linijki i zmieniać numery przy SELECT.

Jak to zautomatyzować?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
athei
post
Post #2





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


Z tego co rozumiem chcesz pogrupować produkty do kategorii.
To co napisałeś jest bez sensu bo w pętli wykonujesz zapytania, które mogłeś wykonać tylko raz.
To jest dla książek i z użyciem PDO ale powinieneś zrozumieć o co chodzi:
Kategorie: id | nazwa
Ksiazki: id | nazwa | wydawnictwo | kategoria_id
  1. try {
  2. $pdo = new PDO("mysql:host=localhost;dbname=test", 'user', 'pass');
  3. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
  4. $pdo -> query ('SET NAMES utf8');
  5.  
  6. // pobiera kategorie
  7. $stmt = $pdo -> query('SELECT id, nazwa FROM kategorie ORDER BY id');
  8. $wynik = array();
  9.  
  10. // id = id kategorii, nazwa = nazwa kategorii, ksiazki = tablica z ksiazkami
  11. while($row = $stmt -> fetch())
  12. {
  13. $wynik[$row['id']] = array(
  14. 'nazwa' => $row['nazwa'],
  15. 'ksiazki' => array()
  16. );
  17. }
  18. $stmt -> closeCursor();
  19.  
  20. // pobiera ksiazki
  21. $stmt = $pdo -> query('SELECT nazwa, wydawnictwo, kategoria_id
  22. FROM ksiazki ORDER BY kategoria_id, id');
  23.  
  24. // dodaje ksiazki do tablicy, odpowiednio do okreslonej kategorii
  25. while($row = $stmt -> fetch())
  26. {
  27. $wynik[$row['kategoria_id']]['ksiazki'][] = array(
  28. 'nazwa' => $row['nazwa'],
  29. 'wydawnictwo' => $row['wydawnictwo']
  30. );
  31. }
  32. $stmt -> closeCursor();
  33.  
  34. // wypisanie ksiazek z podzialem na kategorie
  35. foreach($wynik as $kategoria)
  36. {
  37. echo '<h3>'.$kategoria['nazwa'].'</h3>';
  38. foreach($kategoria['ksiazki'] as $ksiazka)
  39. {
  40. echo '<p><i>'.$ksiazka['nazwa'].'</i>
  41. (Wyd. '.$ksiazka['wydawnictwo'].')</p>';
  42. }
  43. }
  44.  
  45. / /tak wyglada tablica
  46. echo '<pre>', print_r($wynik), '</pre>';
  47.  
  48. $pdo = null;
  49. } catch (PDOException $e) {
  50. die( 'ERROR! Problem z polaczeniem do bazy. ' . $e->getMessage() );
  51. }
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: 5.10.2025 - 17:00