Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Dodawanie do bazy rekordu z formularza
daros17
post
Post #1





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


Mam pewien problem z formularzem i bazą danych. Poniżej przedstawię o co dokładnie mi chodzi.

Mam pewien formularz do którego z bazy danych pobieram aktualne nazwy towarów. Każdy towar ma inną cenę. Struktura w bazie wygląda tak:
id nazwa nazwa_2 cena_c cena_g cena_d
1 towar1 towar_pro 20 15 30
2 towar2 towar2_pro 30 25 40

Jeśli z formularza wybiorę np towar1 to chciałbym aby pokazywał mi się jedynie towar1 a jeśli towar2 to tylko on jak to wykonać?

próbowałem tak, ale nie wyświetla się rekord z bazy


  1. $result = mysql_query("select * from quattro1 WHERE cena_c ='$nazwa'")or die (mysql_error());
  2. while ($row = mysql_fetch_assoc($result)) {
  3. echo $row["cena_c"];
  4. }
  5.  


Ten post edytował daros17 12.11.2010, 11:58:26
Go to the top of the page
+Quote Post
chemikpil
post
Post #2





Grupa: Zarejestrowani
Postów: 34
Pomógł: 7
Dołączył: 3.07.2010

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


Hmm... To wysyłasz przez formularz nazwę tego towaru lub jego id w bazie. Po odczytaniu zmiennej get lub post, zależy jakiej metody użyjesz, pobierasz z bazy dane odpowiadające przesłanej wartości.
Go to the top of the page
+Quote Post
daros17
post
Post #3





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


Czyli robiłem dobrze, tylko gdzieś musiałem popełnić błąd w kodzie, dzięki. Jeszcze jedno pytanie

Czy w jednym zapytaniu mogę zrobić cena_c, cena_g i cena_d bo w tej chwili moje zapytanie wygląda tak. Tyle że jeśli wybiorę np C lub G to i tak pokazują mi się wszystkie jak to przerobić?
  1. $connection = mysql_query("select * from quattro1 WHERE nazwa ='$nazwa'")or die (mysql_error());
  2. while ($row = mysql_fetch_assoc($connection)) {
  3. echo $row["cena_c"];
  4. echo $row["cena_g"];
  5. echo $row["cena_d"];
  6. }
  7. mysql_free_result($connection);


plik formularza ten który jest potrzebny do tego
  1. <?php
  2. include $_SERVER['DOCUMENT_ROOT'].'/quattro/polacz.php';
  3. include $_SERVER['DOCUMENT_ROOT'].'/quattro/inc/dodaj_formularz.php';
  4.  
  5. ?>
  6.  
  7.  
  8. <html>
  9. <form action="/quattro/inc/dodaj.php"method=post>
  10.  
  11.  
  12. <td>Pizza</td>
  13.  
  14. <td>
  15. <center>
  16. <select name="nazwa">
  17. <option value="nazwa"><?php echo $lista; ?></option>
  18.  
  19. </select>
  20. </center>
  21. </td>
  22.  
  23. <td>
  24. <select name="rozmiar">
  25. <option value="">
  26. <option value="C">Cienka(32cm)</option>
  27. <option value="G">Gruba(32cm)</option>
  28. <option value="D">Duża (40cm)</option>
  29.  
  30. </select>
  31. </td>
  32.  
  33.  
  34.  
  35. </table>
  36. </form>
  37. </html>


Ten post edytował daros17 12.11.2010, 13:39:43
Go to the top of the page
+Quote Post
chemikpil
post
Post #4





Grupa: Zarejestrowani
Postów: 34
Pomógł: 7
Dołączył: 3.07.2010

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


Użyć switch case, by sprawdzić który został wybrany i ten tylko wyświetlić.
http://php.net/manual/en/control-structures.switch.php
Go to the top of the page
+Quote Post
daros17
post
Post #5





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


Dzięki działa. Mam jeszcze jedno pytanie w tej chwili do C, G prowadzi inny link do kodu czy tak musi być? Czy mogę w jednym pliku zamieścić kod dla C,G oraz dla D

  1. case C:
  2. include("test.php");
  3. break;
  4. case G:
  5. include("test1.php");
  6. break;


przykład:
Np chcę wyświetlić 1 ze 100 możliwości, wówczas pisanie tego przez case może być meczące.



Ten post edytował daros17 12.11.2010, 15:23:20
Go to the top of the page
+Quote Post
chemikpil
post
Post #6





Grupa: Zarejestrowani
Postów: 34
Pomógł: 7
Dołączył: 3.07.2010

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


Pewnie że tak nie może być. Strona powinna być dynamiczna i pobierać z bazy dane dla każdej wybranej możliwości. Robienie 100 podstron kompletnie mija się z celem.
Go to the top of the page
+Quote Post
daros17
post
Post #7





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


Czyli jak to wówczas trzeba rozwiązać?
Go to the top of the page
+Quote Post
chemikpil
post
Post #8





Grupa: Zarejestrowani
Postów: 34
Pomógł: 7
Dołączył: 3.07.2010

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


Jeżeli każda podstrona jest taka sama i różni się tylko danymi to przekazuj przez geta do następnej strony id elementu który ma zostać pobrany z bazy. Jeżeli różnią się niewiele to podziałaj warunkami. Tyle tylko mogę powiedzieć, bo szczerze trochę nie za bardzo kumam jak to wszystko ma wyglądać. Bez żadnych szczegółów ciężko czarować.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 02:58