Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Problem z Insertem - skrypt dodaje tylko jeden produkt z koszyka.
vLeK
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 20.05.2009

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


Tym razem mam trochę inny problem. Skrypt ładnie wsadza mi wszystko do bazy danych, poza wszystkimi produktami, gdyż pobiera tylko ostatni z listy. Pewnie gdzieś muszę wstawić pętlę, ale nie umiem sobie z tym poradzić i wymyslić warunku... Proszę więc o pomoc.

Tutaj kod:

  1. <?php # Listing 13.x - sprawdzenie.php
  2. // Pierwsza strona związana z płatnością.
  3.  
  4. if (isset($_POST['submit'])) { // Obsługa formularza.
  5.  
  6.    require_once ('./../mysql_connect.php'); // Połączenie z bazą danych.
  7.    
  8.    //WYCIĘTE WARUNKI SPRAWDZAJĄCE POPRAWNOŚĆ WYPEŁNIENIA PÓL FORMULARZA
  9.  
  10.    $nw = ($_POST['z_nazwa_wys']);
  11.    $cw = ($_POST['z_cena_wys']);
  12.    $zr = ($_POST['z_razem']);
  13.    
  14.    $zzpi = ($_POST['zz_pro_ident']);
  15.    $zzpc = ($_POST['zz_pro_cena']);
  16.    $zzpn = ($_POST['zz_pro_nazwa']);
  17.    $zzpil = ($_POST['zz_pro_ilosc']);
  18.  
  19.    if ($fn && $ln && $e && $cit && $cod && $st && $nu && $ph) { // Jeśli nie wystąpiły żadne problemy.
  20.            
  21.            
  22.            $query1 = "INSERT INTO zamowienia (z_street, z_number, z_phone, z_postcode, z_city, z_first_name, z_last_name, z_email, z_data_zam, z_nazwa_wys, z_cena_wys, z_razem) VALUES ('$st', '$nu','$ph','$cod', '$cit','$fn', '$ln', '$e', NOW(), '$nw', '$cw', '$zr' )";            
  23.            $insert1 = mysql_query ($query1) or mysql_error();
  24.            $z_id = mysql_insert_id();
  25.            
  26.            
  27.            
  28.            
  29.            $z_id = mysql_insert_id();
  30.            $query2 = "INSERT INTO zawartosc_zamowienia (zz_pro_ident, zz_pro_nazwa, zz_pro_cena, zz_pro_ilosc, z_id) VALUES ('$zzpi', '$zzpn', '$zzpc', '$zzpil', '$z_id')";
  31.            $instert2 = mysql_query($query2) or mysql_error();
  32.            
  33.        
  34.                // W razie potrzeby zostanie wysłana wiadomość poczty elektronicznej.
  35.                echo '<h3>Dziękujemy za przeprowadzenie rejestracji!</h3> </div>';
  36.                //$_SESSION = array(); // Usunięcie zmiennych.
  37.                //session_destroy(); // Usunięcie samej sesji.
  38.                include_once ('./include/stopka.html');
  39.                exit(); // Zakończenie skryptu.
  40.                
  41.            } else { // Jeśli wystąpiły problemy.
  42.                // W razie konieczności zapisuje w dzienniku błędów komunikat.
  43.                echo '<p class="blad">Ze względu na wystąpienie błędu systemowego rejestracja nie była możliwa. Przepraszamy za wszelkie niedogodności.</p>';
  44.            }        
  45.            
  46.        } else { // Takie konto użytkownika już istnieje.
  47.            echo '<p class="blad">Podana nazwa konta już istnieje.</p>';
  48.    
  49.  
  50.    
  51.    
  52. } // Koniec głównej instrukcji warunkowej.
  53.  
  54. if(isset($_SESSION['user_id']) || (isset($_SESSION['cart'])) || (isset($_SESSION['cenawys'])) || (isset($_SESSION['idwys']))) {
  55.    
  56. // Określenie tytułu strony i dołączenie nagłówka HTML.
  57. $page_title = 'Płatność';
  58. require_once ('./../mysql_connect.php'); // Nawiązanie połączenia z bazą danych.
  59.  
  60. // Pobranie wszystkich informacji produktów umieszczonych w koszyku.
  61. $query = 'SELECT * FROM kategorie, produkty WHERE kategorie.kat_id = produkty.kat_id AND produkty.pro_id IN (';
  62. foreach ($_SESSION['cart'] as $key => $value) {
  63.    $query .= $key . ',';
  64. }
  65. $query = substr ($query, 0, -1) . ') ORDER BY kategorie.kat_nazwa ASC';
  66. $result = mysql_query ($query);
  67.  
  68. // Utworzenie tabeli i formularza.
  69.    echo '<table style="border: solid 1px; width: 770px; margin: 0 auto; margin-top: 20px; padding: 0 0; font-size: 12px" cellspacing="3" cellpadding="3">
  70.    <tr>
  71.        <td style="text-align: left; width: 35%; background-color: #DDDDEE;" >Produkt</td>
  72.        <td style="text-align: center; width: 20%; background-color: #35356A; color: white">ID produktu</td>
  73.        <td style="text-align: center; width: 15%; background-color: #DDDDEE;">Cena</td>
  74.        <td style="text-align: center; width: 10%; background-color: #35356A; color: white">Ilość</td>
  75.        <td style="text-align: right; width: 20%; background-color: #DDDDEE;">Suma</td>
  76.    </tr>
  77. <form action="index.php?p=checkout" method="post">';
  78.  
  79. // Wyświetlenie każdej pozycji.
  80. $total = 0; // Całkowity koszt zamówienia.
  81. while ($row = mysql_fetch_array ($result, MYSQL_ASSOC)) {
  82.    
  83.    // Obliczenie sumy końcowej i częściowych.
  84.    $sub_total = $_SESSION['cart'][$row['pro_id']] * $row['pro_cena'];
  85.    $total += $sub_total + $_SESSION['cenawys'];
  86.    
  87.    // Wyświetlenie wiersza.
  88.    echo "    <tr>
  89.        <td style='text-align: left;'>{$row['pro_nazwa']}";
  90.        echo '<input type="hidden" maxlength="15" name="zz_pro_nazwa" value="'.$row['pro_nazwa'].'">';
  91.        echo "</td>
  92.        <td style='text-align: center;'>{$row['pro_ident']}";
  93.        echo '<input type="hidden" maxlength="15" name="zz_pro_ident" value="'.$row['pro_ident'].'">';
  94.        echo "</td>
  95.        <td style='text-align: center'>{$row['pro_cena']}zł";
  96.        echo '<input type="hidden" maxlength="15" name="zz_pro_cena" value="'.$row['pro_cena'].'">';
  97.        echo "</td>
  98.        <td style='text-align: center;'>{$_SESSION['cart'][$row['pro_id']]}";
  99.        echo '<input type="hidden" maxlength="15" name="zz_pro_ilosc" value="' .$_SESSION['cart'][$row['pro_id']]. '">';
  100.        echo "</td>
  101.        
  102.        <td style='text-align: right;'>" . number_format ($sub_total, 2) . " zł</td>
  103. </tr>\n";
  104. } // Koniec pętli WHILE.
  105.  
  106.  
  107.  
  108. // Wyświetlenie stopki HTML oraz zamknięcie tabeli i formularza.
  109. echo '    <tr>
  110.    <td colspan="4" style="text-align: right;">Koszt wysyłki:</td>    
  111.    <td align="right">' . $_SESSION['cenawys'] . ' zł</td>
  112. </tr>
  113. <tr>
  114.    <td colspan="4" align="right"><b>Suma zamówienia: <b></td>';
  115.    echo '<input type="hidden" maxlength="15" name="z_razem" value="' . number_format ($total, 2) .'">';
  116.    echo '
  117.    <td style="text-align: right; font-weight: bold">' . number_format ($total, 2) . ' zł</td>
  118. </tr>
  119. </table>';
  120.  
  121. // Zarejestrowanie w sesji zmiennej $total.
  122. $_SESSION['total'] = $total;
  123.  
  124.    mysql_close(); // Zamknięcie połączenia z bazą danych.
  125. ?>
  126. <?php
  127. if(isset($_SESSION['user_id']))
  128. {
  129. // echo 'Zalogowany jest: '. $_SESSION['user_id'];
  130. mysql_connect('localhost','admin','admin');
  131. mysql_select_db('goldfish');
  132. $user_id=$_SESSION['user_id'];
  133. $sql=mysql_query("select * from users where user_id='$user_id'");
  134. $row = mysql_fetch_array($sql, MYSQL_ASSOC);
  135. echo '<p style="margin-left: 15px"> Jako opcję dostawy wybrano: ' . $_SESSION['nazwys'] . ' </p>';
  136. echo '<form method="POST" action="index.php?p=checkout" method="post">';
  137.    echo '
  138.        <fieldset style="width: 766px; padding: 0;  margin: 0 auto; margin-top: 3px; font-size: 9pt;">
  139.        <p style="text-align: center; font-size: 8pt;">W celu zakończenia transakcji należy wypełnić poniższy formularz. Na podany poniżej adres zostanie wysłana przesyłka.</p>
  140.        <div style="float: left; width: 480px;  margin: 0 auto; text-align: right; line-height: 19pt; ">
  141.        ';
  142. echo 'Imię: <input type="text" maxlength="15" name="z_first_name" value="'.$row['first_name'].'"><br />';
  143. echo 'Nazwisko: <input type="text" name="z_last_name" value="'.$row['last_name'].'"><br />';
  144. echo 'Miasto: <input type="text" name="z_city" value="'.$row['city'].'"><br />';
  145. echo 'Kod pocztowy: <input type="text" name="z_postcode" size="5" value="'.$row['postcode'].'"><br />';
  146. echo 'Ulica: <input type="text" name="z_street" value="'.$row['street'].'"><br />';
  147. echo 'Numer domu/mieszkania: <input type="text" maxlength="10" size="5" name="z_number" value="'.$row['number'].'"><br />';
  148. echo 'Telefon kontaktowy: <input type="text" name="z_phone" size="15" value="'.$row['phone'].'"><br />';
  149. echo 'E-mail kontaktowy: <input type="text" name="z_email" size="30" value="'.$row['email'].'"><br />';
  150. echo '<input type="hidden" name="z_nazwa_wys" size="30" value="'.$_SESSION['nazwys'].'"><br />';
  151. echo '<input type="hidden" name="z_cena_wys" size="30" value="'.$_SESSION['cenawys'].'"><br />';
  152. echo '</div></fieldset>';
  153. echo '<div style="text-align: center; padding-top: 5px;"><input type="submit" name="submit" value="Wyślij zamówienie" /></form></div>';
  154. }
  155.  
  156. else
  157. {
  158. ?>
  159. <h4 style="text-align: center">Aby dokonać zakupu musisz się zarejestrować i zalogować</h4>
  160. <?php
  161. }
  162.  
  163.    } // Koniec instrukcji IF !defined().
  164.    else {
  165.        header ("Location: index.php");
  166.    }
  167.    mysql_close(); // Zamknięcie połączenia z bazą danych.
  168. ?>


Jestem początkujący, nie znam się za bardzo na php i staram się przerabiać istniejący już kody z podręczników w związku z czym, czasem nie jestem sobie w stanie poradzić z najprostszymi rzeczami.

Z góry dziękuję za pomoc.

Ten post edytował vLeK 8.06.2009, 21:44:00
Go to the top of the page
+Quote Post

Posty w temacie


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: 21.08.2025 - 18:32