Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wczytywanie do szablonowego pliku php danych z mysql i formularza PHP [dodawanie produktow w sklepie int]
Forum PHP.pl > Forum > PHP
BigZ
Witam! Tworzę sklep internetowy, mam już wszystko oprócz panelu administratora. Chcę stworzyć coś w rodzaju tego, by dzięki jednemu formularzowi (submit) po stronie admina dodać przedmiot do możliwości kupna i dodać tę informację do bazy danych.

Moje produkty opierają się na podstronach tzn, mam MENU - produkty i PODMENU - produkt1, produkt2, produkt3. Menu i podmenu są identycznie zbudowane - dlatego napisalem w temacie coś w rodzaju szablonu.

Chciałbym zrobić coś takiego, by TWORZĄC nowy produkt4 (przez formularz dodawania produktu) utworzyło mi w PODMENU produktu nowy odnośnik do PRODUKT4 i aby dane z formularza pojawiły się w tym produkcie (np formularz bedzie wygladac tak: id, tytuł, opis, zdjęcie i cena - do koszyka).

Jednym zdaniem: mam sobie pusty plik np. szablon.php - gdzie jest normalna strona z bialym miejscem div id="TRESC", gdzie maja byc podane informacje z formularza (powyzej w nawiasie) i ma sie to zapisywac do pliku produkt4.php i tworzyć również ten produkt4 razem z innymi elementami w PODMENU.

Pytanie, czy to jest wykonalne questionmark.gif biggrin.gif Czy jest na to jakiś prostszy sposób questionmark.gif
olechafm
no niby może i jest nawet wykonalne tylko to będzie jakaś tragedia... ok patrzysz na sytuacje gdy masz 4 - 5 produktów ale pomyśl co będzie gdy tych produktów będzie 1000, chcesz mieć w katalogach 1000 plików? każdy z osobnym produktem? toż to rzeźnia jakaś... aż boję się zapytać jak wygląda reszta sklepu, jeśli baza produktów opierać się ma na plikach...

jest na to łatwiejszy i przyjemniejszy sposób, owszem i nazywa się BAZA DANYCH ale taka prawdziwa np MySQL wink.gif zapewniam Cię, że użycie takowej jest o wiele łatwiejsze i słuszniejsze chyba pod każdym możliwym względem w tej sytuacji niż baza danych w formie katalogu z plikami, w których trzymasz treść produktu...
BigZ
OK. Wiec zrobmy coś takiego na kształt allegro: tytuł produktu, obok jakas maly obrazek, cena.

Potrafię wyciągnąc to z bazy danych. Całość umieszcze w tabelce i wszystko bedzie lux:

JEDEN PROBLEM: Jak zrobić to, ze po kliknieciu np na tytuł czy tam obrazek danego produktu, przechodzi się do strony z wiekszym opisem questionmark.gif Czy tutaj nie bedzie potrzebny jednak osobny plik .php questionmark.gif

TEGO NIE KAPUJE tongue.gif
mlawnik
To będzie osobny skrypt view.php na przykład.
I on pobiera dane z bazy.
A generowanie takie, ze dajesz linki do view.php z atrybutami get w petli.
BigZ
no to nie wygląda na takie proste, jak sie wydawało tongue.gif ja dopiero początkujący jestem.. tongue.gif ale coś mniej więcej kapuje.. hmm.. a jak z tymi obrazkami ? Do bazy danych nie mozna przeciez przesłać obrazku. jak z nim sie zachować więc czy to w produkty.php czy też tym view.php ?
Dipter
Obrazki trzymasz w ściśle określonym katalogu na serwerze, załóżmy (/media/upload/), a do bazy dodajesz tylko nazwę obrazka (najlepiej byłoby ją wygenerować jakimś hashem). A potem tylko przy pobieraniu z bazy, bierzesz nazwę i całość sklejasz ;P
Rid
Cytat
Do bazy danych nie mozna przeciez przesłać obrazku


Do ,bazy danych można przesłać wszystko-dlatego nazywa się to baza danych.

Jeśli chodzi o obrazki,można zapisać je do komórki binary w postaci tablicy bitów.
CuteOne
Mini przykład wyświetlania zdjęć kilku premiowanych produktów oraz p przejściu na kolejną stronę wyświetlanie opisu klikniętego produktu:

view_premiowane.php:
  1. <?php
  2. $select = mysql_query("SELECT * FROM produkty WHERE premiowane = 1 LIMIT 5");
  3.  
  4. while($row = mysql_fetch_array($select)) {
  5.  
  6. echo '<a href="view_produkt.php&product='.$row['product_id'].'"><img src="images/products/'.$row['product_img'].'"></a>';
  7. }
  8. ?>


view_produkt.php
  1. <?php
  2. $product_id = $_GET['product'];
  3.  
  4. $select = mysql_query("SELECT * FROM produkty WHERE product_id = $product_id");
  5. $row = mysql_fetch_array($select);
  6.  
  7. echo $row['product_opis'];
  8. ?>


BigZ
Czekajta... sad.gif
Powiedzmy, ze narazie bez obrazków, tylko po prostu chce wyswietlic w pliku view.php dane id, produkt, cene oraz dostepną ilość po kliknięciu w "pokaz wiecej" odpowiedniego towaru.
W poniższym pliku robie tabelke, ktora pobieram z bazy danych
wyglada mniej wiecej tak:

Mam takie coś: plik :
produkty.php
  1. $mysql_host = 'serv';
  2. $mysql_login = 'log';
  3. $mysql_haslo = 'has';
  4. $mysql_baza = 'baza';
  5.  
  6. // polaczenie z baza danych
  7. $polaczenie = mysql_connect($mysql_host, $mysql_login, $mysql_haslo) or die('Błąd, nie udało się połączyć z bazą danych.');
  8.  
  9. // polaczenie ze schematem bazy danych
  10. mysql_select_db($mysql_baza) or die('nie udalo sie wybrac schematu bazy danych.');
  11. $wynik = mysql_query("SELECT * FROM zamowienia")
  12. or die('Błąd zapytania');
  13.  
  14. if(mysql_num_rows($wynik) > 0) {
  15. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  16. echo "<table cellpadding=\"2\" border=1>";
  17. while($r = mysql_fetch_assoc($wynik)) {
  18. echo "<tr>";
  19. echo "<td>".$r['id']."</td>";
  20. echo "<td>".$r['produkt']."</td>";
  21. echo "<td>".$r['ilosc']."</td>";
  22. echo "<td>".$r['cena']."</td>";
  23.  
  24. echo "<td>";
  25. echo '<a href="view.php&product='.$r['id'].'">POKAZ WIECEJ</a>';
  26. echo "</td>";
  27. echo "</tr>";
  28. }
  29. echo "</table>";
  30. }
  31.  
  32. ?>


i teraz ten view.php, jak ma wyglądać questionmark.gif

z tego co wywnioskowałem wyżej i z wlasnej wiedzy, musze sie znowu polaczyc z baza

view.php

  1. $mysql_host = 'serv';
  2. $mysql_login = 'log';
  3. $mysql_haslo = 'has';
  4. $mysql_baza = 'baza';
  5.  
  6. // polaczenie z baza danych
  7. $polaczenie = mysql_connect($mysql_host, $mysql_login, $mysql_haslo) or die('Błąd, nie udało się połączyć z bazą danych.');
  8.  
  9. // polaczenie ze schematem bazy danych
  10. mysql_select_db($mysql_baza) or die('nie udalo sie wybrac schematu bazy danych.');
  11. $wynik = mysql_query("SELECT * FROM zamowienia")
  12. or die('Błąd zapytania');
  13. ?>


i... questionmark.gif

  1.  
  2. $product_id = $_GET['id'];
  3. $select = mysql_query("SELECT * FROM zamowienia WHERE id=$product_id");
  4. while($r = mysql_fetch_array($select)) {
  5. echo $r['id'];
  6. echo $r['produkt'];
  7. echo $r['cena'];
  8. echo $r['ilosc'];
  9.  
  10. echo '<a href="view.php&product='.$r['id'].'">POKAZ WIECEJ</a>';
  11. }


Nie mam pojęcia, kombinuje, ale nie wychodzi.. sad.gif

nie kapuje tych przekierowań..
mortus
Skoro w adresie masz view.php&product=... to id produktu znajduje się w $_GET['product']. Ale przecież to podstawy!?
BigZ
no to wiem (chyba) smile.gif
problem w tym, ze jak przechodze w to "pokaz wiecej" to wyswietla mi sie informacja:
  1. Podany w zapytaniu URL view.php&product=1 nie został odnaleziony na tym serwerze.

czyli czegoś brakuje w tym view.php

EDIT:
zmieniłem w
  1. echo '<a href="view.php&id='.$r['id'].'"></a>';

( & na ? ) i mam teraz informacje
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/view.php on line 24
a linijka 24 to:

  1. while($r = mysql_fetch_array($select)) {

co jest nie tak?

caly plik: view.php
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
  2. <html>
  3.  
  4. <head>
  5. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  6. <title>Untitled 1</title>
  7. </head>
  8.  
  9. <body>
  10. <?php
  11. $mysql_host = 'serv';
  12. $mysql_login = 'log';
  13. $mysql_haslo = 'has';
  14. $mysql_baza = baza';
  15.  
  16. // polaczenie z baza danych
  17. $polaczenie = mysql_connect($mysql_host, $mysql_login, $mysql_haslo) or die('BÄąâ&#8364;šĂ„‌d: nie udaĹ‚o siÄ™ nawiÄ‌zać poĹ‚Ä‌czenia z bazÄ‌ danych.');
  18.  
  19. // poĹ‚Ä‌czenie ze schematem bazy danych
  20. mysql_select_db($mysql_baza) or die('BĹ‚Ä‌d: nie udaĹ‚o siÄ™ wybrać schematu bazy danych.');
  21. $product_id = $_GET['id'];
  22. $select = mysql_query("SELECT * FROM zamowienia WHERE id=$produkt_id");
  23.  
  24. while($r = mysql_fetch_array($select)) {
  25. echo $r['id'];
  26. echo '<a href="view.php?id='.$r['id'].'"></a>';
  27. }
  28. ?>
  29. </body>
  30.  
  31. </html>
CuteOne
Tępy jesteś? przecież ktoś ci już napisał dwa posty wyżej, że nie $_GET['id'] tylko $_GET['product']
BigZ
Jestem tępy, bo jestem początkującym profesjonalisto ...

dziekuje za pomoc w takim razie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.