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:
<?php # Listing 13.x - sprawdzenie.php
// Pierwsza strona związana z płatnością.
if (isset($_POST['submit'])) { // Obsługa formularza.
require_once ('./../mysql_connect.php'); // Połączenie z bazą danych.
//WYCIĘTE WARUNKI SPRAWDZAJĄCE POPRAWNOŚĆ WYPEŁNIENIA PÓL FORMULARZA
$nw = ($_POST['z_nazwa_wys']);
$cw = ($_POST['z_cena_wys']);
$zr = ($_POST['z_razem']);
$zzpi = ($_POST['zz_pro_ident']);
$zzpc = ($_POST['zz_pro_cena']);
$zzpn = ($_POST['zz_pro_nazwa']);
$zzpil = ($_POST['zz_pro_ilosc']);
if ($fn && $ln && $e && $cit && $cod && $st && $nu && $ph) { // Jeśli nie wystąpiły żadne problemy.
$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' )";
$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')";
// W razie potrzeby zostanie wysłana wiadomość poczty elektronicznej.
echo '<h3>Dziękujemy za przeprowadzenie rejestracji!</h3> </div>'; //$_SESSION = array(); // Usunięcie zmiennych.
//session_destroy(); // Usunięcie samej sesji.
include_once ('./include/stopka.html');
exit(); // Zakończenie skryptu.
} else { // Jeśli wystąpiły problemy.
// W razie konieczności zapisuje w dzienniku błędów komunikat.
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>'; }
} else { // Takie konto użytkownika już istnieje.
echo '<p class="blad">Podana nazwa konta już istnieje.</p>';
} // Koniec głównej instrukcji warunkowej.
if(isset($_SESSION['user_id']) || (isset($_SESSION['cart'])) || (isset($_SESSION['cenawys'])) || (isset($_SESSION['idwys']))) {
// Określenie tytułu strony i dołączenie nagłówka HTML.
$page_title = 'Płatność';
require_once ('./../mysql_connect.php'); // Nawiązanie połączenia z bazą danych.
// Pobranie wszystkich informacji produktów umieszczonych w koszyku.
$query = 'SELECT * FROM kategorie, produkty WHERE kategorie.kat_id = produkty.kat_id AND produkty.pro_id IN (';
foreach ($_SESSION['cart'] as $key => $value) {
$query .= $key . ',';
}
$query = substr ($query, 0, -1) . ') ORDER BY kategorie.kat_nazwa ASC';
// Utworzenie tabeli i formularza.
echo '<table style="border: solid 1px; width: 770px; margin: 0 auto; margin-top: 20px; padding: 0 0; font-size: 12px" cellspacing="3" cellpadding="3"> <tr>
<td style="text-align: left; width: 35%; background-color: #DDDDEE;" >Produkt</td>
<td style="text-align: center; width: 20%; background-color: #35356A; color: white">ID produktu</td>
<td style="text-align: center; width: 15%; background-color: #DDDDEE;">Cena</td>
<td style="text-align: center; width: 10%; background-color: #35356A; color: white">Ilość</td>
<td style="text-align: right; width: 20%; background-color: #DDDDEE;">Suma</td>
</tr>
<form action="index.php?p=checkout" method="post">';
// Wyświetlenie każdej pozycji.
$total = 0; // Całkowity koszt zamówienia.
// Obliczenie sumy końcowej i częściowych.
$sub_total = $_SESSION['cart'][$row['pro_id']] * $row['pro_cena'];
$total += $sub_total + $_SESSION['cenawys'];
// Wyświetlenie wiersza.
<td style='text-align: left;'>{$row['pro_nazwa']}";
echo '<input type="hidden" maxlength="15" name="zz_pro_nazwa" value="'.$row['pro_nazwa'].'">'; <td style='text-align: center;'>{$row['pro_ident']}";
echo '<input type="hidden" maxlength="15" name="zz_pro_ident" value="'.$row['pro_ident'].'">'; <td style='text-align: center'>{$row['pro_cena']}zł";
echo '<input type="hidden" maxlength="15" name="zz_pro_cena" value="'.$row['pro_cena'].'">'; <td style='text-align: center;'>{$_SESSION['cart'][$row['pro_id']]}";
echo '<input type="hidden" maxlength="15" name="zz_pro_ilosc" value="' .$_SESSION['cart'][$row['pro_id']]. '">';
<td style='text-align: right;'>" . number_format ($sub_total, 2) . " zł</td> </tr>\n";
} // Koniec pętli WHILE.
// Wyświetlenie stopki HTML oraz zamknięcie tabeli i formularza.
<td colspan="4" style="text-align: right;">Koszt wysyłki:</td>
<td align="right">' . $_SESSION['cenawys'] . ' zł</td>
</tr>
<tr>
<td colspan="4" align="right"><b>Suma zamówienia: <b></td>';
echo '<input type="hidden" maxlength="15" name="z_razem" value="' . number_format ($total, 2) .'">'; <td style="text-align: right; font-weight: bold">' . number_format ($total, 2) . ' zł</td> </tr>
</table>';
// Zarejestrowanie w sesji zmiennej $total.
$_SESSION['total'] = $total;
?>
<?php
if(isset($_SESSION['user_id'])) {
// echo 'Zalogowany jest: '. $_SESSION['user_id'];
$user_id=$_SESSION['user_id'];
$sql=mysql_query("select * from users where user_id='$user_id'"); echo '<p style="margin-left: 15px"> Jako opcję dostawy wybrano: ' . $_SESSION['nazwys'] . ' </p>'; echo '<form method="POST" action="index.php?p=checkout" method="post">'; <fieldset style="width: 766px; padding: 0; margin: 0 auto; margin-top: 3px; font-size: 9pt;">
<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>
<div style="float: left; width: 480px; margin: 0 auto; text-align: right; line-height: 19pt; ">
';
echo 'Imię: <input type="text" maxlength="15" name="z_first_name" value="'.$row['first_name'].'"><br />'; echo 'Nazwisko: <input type="text" name="z_last_name" value="'.$row['last_name'].'"><br />'; echo 'Miasto: <input type="text" name="z_city" value="'.$row['city'].'"><br />'; echo 'Kod pocztowy: <input type="text" name="z_postcode" size="5" value="'.$row['postcode'].'"><br />'; echo 'Ulica: <input type="text" name="z_street" value="'.$row['street'].'"><br />'; echo 'Numer domu/mieszkania: <input type="text" maxlength="10" size="5" name="z_number" value="'.$row['number'].'"><br />'; echo 'Telefon kontaktowy: <input type="text" name="z_phone" size="15" value="'.$row['phone'].'"><br />'; echo 'E-mail kontaktowy: <input type="text" name="z_email" size="30" value="'.$row['email'].'"><br />'; echo '<input type="hidden" name="z_nazwa_wys" size="30" value="'.$_SESSION['nazwys'].'"><br />'; echo '<input type="hidden" name="z_cena_wys" size="30" value="'.$_SESSION['cenawys'].'"><br />'; echo '</div></fieldset>'; echo '<div style="text-align: center; padding-top: 5px;"><input type="submit" name="submit" value="Wyślij zamówienie" /></form></div>'; }
else
{
?>
<h4 style="text-align: center">Aby dokonać zakupu musisz się zarejestrować i zalogować</h4>
<?php
}
} // Koniec instrukcji IF !defined().
else {
header ("Location: index.php"); }
?>
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