Dzięki, że mi przypomniałeś pora iść spać :D
GET ma tą przewagę nad POST, że możesz łatwo manipulować zmiennymi:
Kod
&kategoria=majty&ilosc=2123&nazwa=gacie_po_tacie
w POST czegoś takiego nie zrobisz. Od czego powinieneś zacząć, ja myślę, że od poznawania mysql + php ponieważ to Ci będzie niezbędne, robienie czegoś takiego na plikach zajmie Ci więcej czasu i może okazać się męczące (przy modyfikacji itp. ).
1. Rozplanuj sobie bazę danych jak ma wyglądać, jakie pola ma posiadać np.
Tabela :: products
Kod
id | nazwa | category_id | photo
Tabela :: category
Kod
id | name
a) Jak się tworzy bazę danych? Konsola mysql i zapytanie albo poszukaj w internecie programu okienkowego do zarządzania bazami (polecam Navicat).
b) Jak się tworzy tabele? Najlepiej to właśnie tym programem, są też skrypty jak phpmyadmin, ale najlepiej zrobisz to właśnie programem okienkowym moim skromnym zdaniem :P
c) Zakładam, że masz localhost'a z mysql oczywiście. Nie masz? Poszukaj wampserver będziesz miał php5 + mysql.
2. Gdy już masz wszystkie potrzebne tabele to tworzysz pierwszą stronę (index.php)
a) Co będzie zawierał
index.php ? Będziesz miał tam formularz, w którym będziesz wybierał kategorie, po wybraniu kategori wyświetlą się jej wszystkie elementy. Przykład:
<?php
// laczenie z baza danych
// patrz pkt. 3b.
$category = $_GET['category'];
{
// instrukcje do wyswietlenia wszystkich produktow
// w tej kategorii
$query = mysql_query("SELECT * FROM products WHERE category = " . $category);
{
// wyswietlanie wszystkich produktow
echo '<img src="' . $row['photo'] . '" />'; // adres do obrazka echo '<h4>' . $row['nazwa'] . '</h4>'; // nazwa zdjecia }
}
?>
Ale zaraz zaraz, jak w takim razie wybierzesz kategorię !?
b) Do wyboru kategori posłuży Ci np. taki formularz:
<form method="get" action="index.php">
<select name="category">
<?php
$query = mysql_query("SELECT * FROM category"); // pobieranie wszystkich rekordow
{
echo '<option value="' . $row['id'] . '">' . $row['name'] . '</option>'; }
?>
</select>
</form>
<!-- Nizej wyswietlanie produktow w danej kategori, patrz kod powyzej -->
c) Łączenie z bazą,
mysql_connect" title="Zobacz w manualu PHP" target="_manual.
3. Krótkie podsumowanie, co na razie mamy? Formularz, dzięki któremu zobaczymy wszystkie produkty w danej kategori, teraz pora na stworzenie dalszej części, a mianowicie zaznaczając jakiś produkt, zapamiętujemy go do następnego formularza.
a) Modyfikujemy trochę kod, aby pkt. 2a - tak, aby przy każdym produkcie otrzymując checkbox, o nazwie
products[] i wartości równej
id produktu. Oczywiście nie możemy zapomnieć o
form w obrębie wyświetlanych produktów.
b) Gdy już mamy nasz formularz i checkbox'y, przystępujemy do stworzenia kolejnej strony, na którą zostanie skierowany nasz formularz
action="products_view.php".
c) Zawartość
products_view.php powinna posiadać instrukcje, które
wyłapią zaznaczone wcześniej produkty i umożliwią modyfikacje ich ilości.
4. W
products_view.php po tym jak zaznaczymy w checkbox'ach, interesujące nas produkty powinniśmy otrzymać tablicę, aby ją zobaczyć możemy użyć takiego kodu:
<?php
?>
Co otrzymamy? Powinniśmy otrzymać taką tablicę:
Kod
array (
0 => 4,
1 => 2,
2 => 10,
3 => 32,
4 => 20,
)
a) W naszym kodzie sprawdzamy najpierw czy dane zostały przesłane
<?php
if (isset($_POST['products'])) {
}
?>
b) Jeśli zostały przesłane to tak jak to miało miejsce na początku wyświetlamy produkty z tą różnicą, że zamiast checkbox'a będziemy mieli input'a typu 'text', w którym będziemy podawać ilość.
5. I ostatni punkt, z formularza ze strony
products_view.php, wyświetlamy wynik. Tego nie będę opisywał, ponieważ wydaje mi się, że dochodząc do tego punktu, powinieneś już to sam zrobić.
---
Pisałem to późno w nocy, a raczej rano więc z góry przepraszam za wszelkie błędy ort. a także za błędy w kodzie, pisałem wszystko z palca na szybko także moga się pojawiać błędy. Nie mniej jednak jeżeli będziesz miał jakieś pytania to zapraszam.
Pozdrawiam serdecznie.