Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie do bazy rekordu z formularza
Forum PHP.pl > Forum > Przedszkole
daros17
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.  
chemikpil
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.
daros17
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>
chemikpil
Użyć switch case, by sprawdzić który został wybrany i ten tylko wyświetlić.
http://php.net/manual/en/control-structures.switch.php
daros17
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.

chemikpil
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.
daros17
Czyli jak to wówczas trzeba rozwiązać?
chemikpil
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ć.
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.