Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z dodaniem zamówienia do bazy
dtulacz
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 19.01.2008
Skąd: Kalisz / Legnica

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


Witajcie;
Mam dość dziwny problem z moim koszykiem. Mianowicie całość działa z grubsza poprawnie, to jest bardzo prosty koszyk, niestety nie chce mi dodawać zamówienia do bazy poczas finalizowania zamówienia. Nowego klienta dodaje bez problemu, gorzej z dodaniem właśnie zamówienia do tabeli tblzamowienia. Rozkładam już ręce normalnie. Czy mógłby mi ktoś z tym pomóc? Dodam, iż projekt stworzyłem na potrzeby nauki... tylko i wyłącznie.
Pozdrawiam serdecznie
D(T)T

link do całości: http://s006.wyslijto.pl/?file_id=042567943275946435117675894
Go to the top of the page
+Quote Post
misiek172
post
Post #2





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


jak ktoś ma ci pomoc człowieku? nikt nie jest jasnowidzem twojego mózgu.

Napisz swoje zapytanie do bazy, sposób w jaki go wywołujesz i strukture tabeli.
Go to the top of the page
+Quote Post
dtulacz
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 19.01.2008
Skąd: Kalisz / Legnica

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


Witam;
Nie dołączałem kodu, ponieważ pod postem dałem link do całości. W taki razie wklejam poniżej jak to wygląda:
============= pamieci.php ->dodanie czegos do koszyka
$wynik = mysql_query("SELECT IdProduktu, Model, Cena FROM tblprodukty WHERE IdKategorii=4");

while($wiersz = mysql_fetch_row($wynik)) {
echo '
<div class="model2"><a href="opis.php?id=';
echo $wiersz[0];
echo '&IdKategorii=4" class="linia">';
echo $wiersz[1];
echo '</a></div>';

echo '<div class="cena2">';
echo $wiersz[2];
echo '</div>';


echo '<div class="koszyk2">';


echo '<a href="koszyk.php?id='.$wiersz[0].'&IdKategorii=4"><img src="../files/kosz.gif" alt="Koszyk" /></a>';
echo '</div>';
}

=================koszyk.php ->lista produktów
$id_produktu=$_GET['id'];

if(isset($id_produktu))
$_SESSION['koszyk'][$id_produktu]+=1;

foreach ($_SESSION['koszyk'] as $p => $produkt) {


$q=mysql_query("SELECT * FROM tblprodukty WHERE IdProduktu='$p'");
$row=mysql_fetch_array($q);

?>

<div style="background-color:#FFFFFF; margin:3px; padding:5px;">
<div style="font-weight:bold; float:left;"><?php echo $row['Model'];?></div>
<div style="float:right;"><?php echo $_SESSION['koszyk'][$p]?> szt.</div>
<div style="clear:both;"></div>
<div style="float:left; width:150px;"><?php echo $row['Producent'];?></div>
<div style="float:left;"><?php echo $row['Cena']; ?> zł</div>
<div style="float:right;"><a href="usun_produkt.php?id=<?php echo $row['IdProduktu'] ?>" style="text-decoration:none; color:red; font-weight:bold;">[ USUŃ ]</a></div>
<div style="clear:both;"></div>
</div>
<?php
$koszt+=$row['Cena'] * $_SESSION['koszyk'][$p];

}



echo'<div style="margin-top:20px; font-weight:bold; font-size:13px; float:left;">Wartość zakupu: '.$koszt.' zł</div><div style="margin-top:20px;float:right;"><a href="kasa.php">Do kasy</a></div>';

======= usun_produkt.php
$id_produktu=$_GET['id'];

if( count($_SESSION['koszyk'])>0 ) {

unset($_SESSION['koszyk'][$id_produktu]);
@header ('Location: koszyk.php');
}
echo 'Usunięto produkt z koszyka';

======== kasa.php - tutaj wypełniam formularz i zapisuje dane do tabeli, no i wlasnie nie chce mi zapisac do tabeli tblzamowienia

if( !isset($_POST['imie']) ) {
?>


<form method="post" action="kasa.php">
<table>
<tr><td>Imię:</td><td><input type="text" name="imie" style="border:1px solid #515151; width:300px;" /> </td></tr>
<tr><td>Nazwisko:</td><td><input type="text" name="nazwisko" style="border:1px solid #515151; width:300px;" /> </td></tr>

<tr><td colspan="2"> </td></tr>

<tr><td>Kod pocztowy:</td><td><input type="text" name="kod_pocztowy" style="border:1px solid #515151; width:300px;" /> </td></tr>
<tr><td>Miejscowość:</td><td><input type="text" name="miejscowosc" style="border:1px solid #515151; width:300px;" /> </td></tr>
<tr><td>Adres:</td><td><input type="text" name="adres" style="border:1px solid #515151; width:182px;" /> </td></tr>

<tr><td colspan="2"> </td></tr>

<tr><td>Telefon:</td><td><input type="text" name="telefon" style="border:1px solid #515151; width:300px;" /> </td></tr>
<tr><td>Adres e-mail:</td><td><input type="text" name="email" style="border:1px solid #515151; width:300px;" /> </td></tr>

<tr><td></td><td><input type="image" src="gfx/btn_zamow.jpg" /></td></tr>
</table>
</form>


<?php
}
else {
$error=0;
$error_msg="Nie można dokończyć transakcji, ponieważ: <br />";

$imie=trim(strip_tags(addslashes($_POST['imie'])));
$nazwisko=trim(strip_tags(addslashes($_POST['nazwisko'])));
$kod_pocztowy=trim(strip_tags(addslashes($_POST['kod_pocztowy'])));
$miejscowosc=trim(strip_tags(addslashes($_POST['miejscowosc'])));
$adres=trim(strip_tags(addslashes($_POST['adres'])));
$telefon=trim(strip_tags(addslashes($_POST['telefon'])));
$email=trim(strip_tags(addslashes($_POST['email'])));

if( !$imie ) { $error_msg.="+ nie podano imienia<br />"; $error=1; }
if( !$nazwisko ) { $error_msg.="+ nie podano nazwiska<br />"; $error=1; }
if( !$kod_pocztowy ) { $error_msg.="+ nie podano kodu pocztowego<br />"; $error=1; }
if( !$miejscowosc ) { $error_msg.="+ nie podano miasta<br />"; $error=1; }
if( !$adres ) { $error_msg.="+ nie podano nazwy ulicy<br />"; $error=1; }
if( !$telefon ) { $error_msg.="+ nie podano telefonu<br />"; $error=1; }
if( !$email ) { $error_msg.="+ nie podano adresu e-mail<br />"; $error=1; }

if( $error ) printf("%s",$error_msg);
else {

$q=mysql_query("INSERT INTO tblklienci (Imie, Nazwisko, Adres, KodPocztowy, Miejscowosc, Telefon, email) VALUES ('$imie','$nazwisko','$adres','$kod_pocztowy','$miejscowosc','$telefon','$email')");

if( !$q )
print ("Dane <b>nie</b> zostały dodane do bazy. Prosimy o kontakt z administratorem.");

else {
$IdKlienta=mysql_insert_id();
for($i=0;$i<count($koszyk);$i++) {
$IdProduktu=$koszyk[$i];
//-------------------------------------------------------------------------odnalezienie ceny-
$q_cena=mysql_query("SELECT * FROM tblprodukty WHERE tblprodukty.IdProduktu='$IdProduktu'");
$row_cena=mysql_fetch_array($q_cena);
$cena=$row_cena['Cena'];
//-------------------------------------------------------------------------odnalezienie ceny-
$data=date("Y-m-d");
$q=mysql_query("INSERT INTO tblzamowienia (IdProduktu, IdKlienta, Wartosc, Data) VALUES ('$IdProduktu','$IdKlienta','$cena','$data')");
//printf("%s ksiazkaid: %s, cena: %s, data: %s<br /><br />",$osobaid,$ksiazkaid,$cena,$data);
}

if ($q==TRUE) {


printf("Zamówienie zostało przyjęte. Dziękujemy; cena".$cena." i data".$data." i idklienta".$IdKlienta." oraz idproduktu".$IdProduktu."!");
}
else { echo 'Nie udało się dodać zamówienia';}

}
}
}

======== tblzamowienia:
IdZamowienia int(10) UNSIGNED Nie uto_increment
IdProduktu int(10) UNSIGNED Nie 0
IdKlienta int(10) UNSIGNED Nie 0
Wartosc float(7,2) Tak NULL
Data date Nie 0000-00-00
Go to the top of the page
+Quote Post
Hazel
post
Post #4





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Ale co się dzieje? Co się wyświetla? Nic, czy komunikat `Nie udało się dodać zamówienia` ?
Zastosuj mysql_error()" title="Zobacz w manualu PHP" target="_manual i print_r()" title="Zobacz w manualu PHP" target="_manual w kilku miejscach i sam dojdziesz do tego, co jest nie tak.
Go to the top of the page
+Quote Post
dtulacz
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 19.01.2008
Skąd: Kalisz / Legnica

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


hmm no jak sprawdzielm, na zasadzie wyswietlenia wartosci... to tylko IdKlienta mi dało jakas wartosc, przy reszcie mialem pusto.
Go to the top of the page
+Quote Post
Hazel
post
Post #6





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Sprawdzaj za pomocą jednej z funkcji print_r" title="Zobacz w manualu PHP" target="_manual, var_dump" title="Zobacz w manualu PHP" target="_manual czy var_export" title="Zobacz w manualu PHP" target="_manual wartości tych zmiennych, które zapisujesz do tabeli, bo skoro jedna ma wartość a inne nie, to znaczy po prostu, że zapisujesz puste zmienne, a nie że jest problem z bazą czy zapytaniem.

P.S. Stosuj odpowiednie BBCode, bo Twój kod jest niewyraźny i mało czytelny.

Ten post edytował Hazel 19.01.2008, 18:16:41
Go to the top of the page
+Quote Post
dtulacz
post
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 19.01.2008
Skąd: Kalisz / Legnica

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


Już chyba wiem w czym problem. Jak dodałem linijke:
else {
$koszyk=$_SESSION['koszyk'];
$IdKlienta=mysql_insert_id();
to zaczęła pokazywać się data. Myślę, że sesja źle przekazuje IdProduktu... dlatego nie ma ceny i nie dodaje do bazy.. Zna ktos rozwiązanie na to?

jak dalem instrukcje print_r, to dostalem cos takiego jak Array[1] => 1
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 22:33