Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz zamówienia
Forum PHP.pl > Forum > PHP
doman_12
Po wypełnieniu formularza zamówienia nie dodaje rekordu do tabeli sad.gif. Nie wiem jaka może być przyczyna. Poniżej przedstawiam pliki: funkcje1.php, checkout.php oraz zamow.php.

funkcje1.php
  1. <?php
  2.  
  3.  
  4. function pol_mysql()
  5. {
  6.  
  7.  
  8. //ustawiamy teraz dane naszej bazy
  9. $db_host = 'localhost';
  10. $db_user = 'root';
  11. $db_pass = 'haslo';
  12. $db_name = 'sklep';
  13.  
  14. //ustawiamy polączenie z bazą danych
  15. $lacz = mysql_pconnect($db_host, $db_user, $db_pass);
  16. if(!$lacz)
  17. {
  18.  echo "Wystąpił błąd: Połączenie z bazą nie powiodło się.";
  19.  exit; }
  20.  
  21. //wybieramy bazę
  22. if(!@mysql_select_db($db_name, $lacz)) {
  23. echo '<b>Baza danych chwilowo niedostepna. Przepraszamy.</b>';
  24. exit;  }
  25.  
  26. }
  27.  
  28. function wynik_db_do_tablicy($wynik)
  29. {
  30. $tablica_wyn=array();
  31.  
  32. for($licznik=0; $rzad=@mysql_fetch_array($wynik); $licznik++)
  33. $tablica_wyn[$licznik]=$rzad;
  34.  
  35. return $tablica_wyn;
  36. }
  37.  
  38. function html_url($url, $nazwa)
  39. {
  40. // wyświetlenie URL-a jako łącza
  41. ?>
  42. <P align="center">
  43. <a href="<?=$url?>"><?=$nazwa?></a>
  44. </P>
  45. <?
  46. }
  47.  
  48.  
  49. // formularz zamówienia
  50. function dodaj_form()
  51. {
  52. ?>
  53.  
  54.  
  55.  
  56.  
  57.  
  58. <form method="post" action="checkout.php">
  59.  
  60. <table ALIGN="center">
  61.  
  62. <div align="center"><b>Informacje o kupującym</b> </div> <br/> <br/>
  63.  
  64. <tr>
  65. <td>Imię:</td> <td><input type="text" name="imie_zam" maxlenght="15"> </td>
  66. </tr>
  67.  
  68. <tr>
  69. <td>Nazwisko: </td> <td> <input type="text" name="nazw_zam" maxlenght="50"> </td>
  70. </tr>
  71.  
  72. <tr>
  73. <td>Adres kupującego:</td>
  74. <td><input type="text" name="adres_zam" maxlenght="50"></td>
  75. </tr>
  76.  
  77. <tr>
  78. <td>Miasto</td>
  79. <td><input type="text" name="miasto_zam" maxlenght="50"></td>
  80. </tr>
  81.  
  82. <tr>
  83. <td>Województwo</td>
  84. <td><input type="text" name="woj_zam" maxlenght="50"></td>
  85. </tr>
  86.  
  87. <tr>
  88. <td>Kod pocztowy</td>
  89. <td><input type="text" name="kod_zam" maxlenght="5" size="5"></td>
  90. </tr>
  91.  
  92. <tr>
  93. <td>Numer telefonu</td>
  94. <td><input type="text" name="tel_zam" maxlenght="12" size="12"></td>
  95. </tr>
  96.  
  97. <tr>
  98. <td>Adres e-mail:</td>
  99. <td><input type="text" name="email_zam" maxlenght="50"></td>
  100. </tr>
  101.  
  102.  <tr>
  103.  <td align=center colspan=2>
  104.  <input type=submit value="Wyślij"></td>
  105. </tr>
  106. </table>
  107. </form>
  108. <?
  109.  
  110. }
  111.  
  112.  
  113. //dodajemy zamówienie
  114.  
  115.  
  116. function dodaj_zamowienie($imie_zam, $nazw_zam, $adres_zam, $miasto_zam, $woj_zam, $kod_zam, $tel_zam, $email_zam)
  117. {
  118.  
  119. $polaczenie= pol_mysql();
  120.  
  121. $czas = date("j-m-Y-G:i:s");
  122. // umieszczenie zamówienie w bazie danych
  123. $zapytanie = "INSERT INTO zamowienia VALUES
  124.  ('$imie_zam', '$nazw_zam', '$adres_zam', '$miasto_zam', '$woj_zam', '$kod_zam', '$tel_zam', '$email_zam', '$czas')";
  125. $wynik = mysql_query($zapytanie);
  126.  
  127.  echo "Zamówienie zrealizowane pomyślnie.";
  128.  
  129. }
  130.  
  131.  
  132. ?>


checkout.php

  1. <?
  2. //wczytanie pliku z funkcjami
  3. require_once ("funkcje1.php");
  4. //rozpoczęcie sesji
  5. //kod PHP
  6.  
  7.  
  8. $wynik = dodaj_zamowienie($imie_zam, $nazw_zam, $adres_zam, $miasto_zam, $woj_zam, $kod_zam, $tel_zam, $email_zam);
  9.  
  10. ?>



  1. zamow.php
  2.  
  3. <?php
  4. //wczytanie pliku z funkcjami
  5. require_once ("funkcje1.php");
  6. //rozpoczęcie sesji
  7. //kod PHP
  8. if ($_GET['m'] == 'checkout')
  9. dodaj_form();
  10.  
  11. ?>



Pozdrawiam<div align=\"center\"> </div align=\"center\">

Rozwiązanie problemu zapewne jest banalne worriedsmiley.gif
deirathe
może o to chodzi:
  1. <?php
  2. $zapytanie = "INSERT INTO zamowienia VALUES
  3.  ('".$imie_zam."', '".$nazw_zam."', '".$adres_zam."', '".$miasto_zam."', '".$woj_zam."', '".$kod_zam."', '".$tel_zam."', '".$email_zam."', '".$czas."')";
  4. ?>


a jeszcze sobie zmien to:
$wynik = mysql_query($zapytanie);
na
$wynik = mysql_query($zapytanie)or die(mysql_error());
i powiedz co masz
Daimos
  1. <?php
  2. $wynik = mysql_query($zapytanie) or die(mysql_error());
  3. ?>

jaki blad?

--- i nie zdazylem ;]
doman_12
Jak wypełniam teraz pola formularza i daje wyślij, to wyskakuje komunikat:

Kod
Column count doesn't match value count at row 1


co ten błąd oznacza? Dalej nie dodaje rekordu.
Grzyw
Oznacza, że do jednej z kolumn tabeli próbuje się wsadzić wartość której typ nie jest zgodny z typem kolumny. Na przykład gdy do kolumny typu int wsadzić próbuję się string.

Sprawdź, czy w tabeli masz faktycznie taką kolejność kolumn:
  1. <?php
  2. $zapytanie = "INSERT INTO zamowienia VALUES
  3.  ('".$imie_zam."', '".$nazw_zam."', '".$adres_zam."', '".$miasto_zam."', '".$woj_zam."', '".$kod_zam."', '".$tel_zam."', '".$email_zam."', '".$czas."')";
  4. ?>


Albo przekształć zapytanie z postaci:
  1. INSERT INTO zamowienia VALUES (imie,nazwisko,.......)


do postaci:
  1. INSERT INTO zamowienia (imie,nazwisko,.......) VALUES (imie,nazwisko,.......)


Będziesz miał pewność, że kolejność jest ok.
doman_12
Hura udało się, wszystkie pola podane w formularzu umiesza w tabeli guitar.gif

Mam następne pytanie, mam koszyk w którym po dodaniu artykułu wyświetla się: nazwa artykułu, cena, ilość, itp. później klikam na przycisk zamówienie i wyświetla mi się formularz, przedstawiony wyżej: imię, nazwisko, itp. Co należy zrobić, żeby po wypelnieniu tych pól, także wraz z danymi osoby zamawiającej do tabeli "zamowienia" automatycznie zostały dodane cena, nazwa artykułu, ilość?questionmark.gif


Pozdrawiam

Może inaczej zapytam jak pobrać dane z tabeli "Koszyk" i umieścić je w tabeli "zamówienie" worriedsmiley.gif



Pozdrawiam

Czy naprawdę nikt nie zna odpowiedzi?questionmark.gif sciana.gif
potreb
Wystarczy że stworzysz zapytanie w formularzu zamówienia które będzie ci pobierało id artykułu który się wybrało a następnie wyświetlenie reszty danych. Bardzo proste?
doman_12
Do pliku funkcje1.php dodałem kolejną funkcję - function dodaj_art, poniżej umieszczam jej definicję nie wiem czy składani jest poprawnie napisane, więc może dlatego nie z tabeli "koszyk" nie chece umieszczać rekordów do tabeli "zamowienie".

  1. <?php
  2. function dodaj_art($id_wyb_art, $ilosc_wyb_art, $kolor_wyb_art)
  3. {
  4. $polaczenie= pol_mysql();
  5.  
  6. $zapytanie1 = "SELECT id_wyb_art, ilosc_wyb_art, kolor_wyb_art FROM koszyk";
  7. $zapytanie1 = "INSERT INTO zamowienie (
  8.  id_wyb_art, ilosc_wyb_art, kolor_wyb_art) VALUES
  9.  ('$id_wyb_art', '$ilosc_wyb_art', '$kolor_wyb_art')";
  10. $wynik1 = mysql_query($zapytanie1) or die (mysql_error());
  11.  
  12. }
  13. ?>


Pozdrawiam
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.