Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z dodawaniem produktów
Forum PHP.pl > Forum > Przedszkole
jaros
Witam!
Mam problem z dodawaniem produktów do tabeli.
Gdy dodam jeden produkt to w tabeli pojawiają się dwa wpisy.

pierwszy jest wypełniony danymi o produkcie , natomiast drugi jest pusty.
Co może być nie tak?questionmark.gif
LBO
podaj kod php..ale najwyrazniej 2 razy uzywasz komendy INSERT
jaros
Kod
  1. <?php
  2.  
  3.  
  4. if ($_SESSION['login'] =$login)
  5. {
  6.  
  7. $zapytanie = "INSERT INTO koszyk (lp, nazwap) VALUES ('NULL', '".$_POST['idprod']."')";
  8. $wynik = mysql_query($zapytanie) or die ("Próba polączenia się nie udała");
  9.  
  10.  
  11.  
  12. }
  13. else
  14. {
  15. echo "<center><b><font color=red size=3>";
  16. echo "Opcja dostępna po zalogowaniu.";
  17. echo "</center></b></font>";
  18. }
  19.  
  20. ?>
SongoQ
Moze masz jakas petle, tan kod co podales duzo nie mowi. Wstawiaj co kilka lini echo i zobacz cos sie 2 razy wykonuje.
jaros
Może zacznę od początku :

Mam tabele katprod:
  1. CREATE TABLE katprod (
  2. idkat int(11) NOT NULL AUTO_INCREMENT,
  3. nazwakat varchar(60) DEFAULT NULL,
  4. PRIMARY KEY (idkat)
  5. ) TYPE=MyISAM;


plik index.php - wyświetlam listę wszystkich kategorii z tabeli katprod:

  1. <? 
  2. require ('polaczenie.php');
  3. $wynik = mysql_query ('SELECT * FROM katprod ORDER BY nazwakat');
  4.  
  5. while ($row = mysql_fetch_array($wynik)) 
  6. {
  7.  
  8.  
  9. echo "
  10. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  11. <img src="grafika/m02.gif">
  12. <a href="prod_wgkat.php?idkat=$row[idkat]">
  13. <strong>$row[nazwakat]</strong></a><br>
  14. <img src="grafika/m03.gif" width=190><br><br>";
  15.  
  16. }
  17.  
  18. ?>


następnie przechodzę do pliku prod_whkat.php gdzie wyświetlam listę produktów
odpowiadających wybranej kategori.

tabela produkty:
  1. CREATE TABLE produkty (
  2. idprod int(11) NOT NULL AUTO_INCREMENT,
  3. idkat int(11) DEFAULT NULL,
  4. nazwap varchar(60) DEFAULT NULL,
  5. producent varchar(40) DEFAULT NULL,
  6. zdjeciem varchar(60) NOT NULL DEFAULT '',
  7. opis varchar(255) DEFAULT NULL,
  8. gwarancja varchar(30) DEFAULT NULL,
  9. cena varchar(20) DEFAULT NULL,
  10. promocja char(2) DEFAULT NULL,
  11. dostepnosc varchar(5) DEFAULT NULL,
  12. PRIMARY KEY (idprod)
  13. ) TYPE=MyISAM;


Gdy wybiorę jakiś produkt przechodzę do pliku inf_oprod.php dzie wyświetlam dane po pordukcie:
  1. <?
  2. include ('polaczenie.php');
  3.  
  4. $zapytanie = mysql_query("SELECT idprod FROM produkty WHERE idprod = $_GET[idprod]") ;
  5.  
  6. ?>
  7. <strong><font size="4">Nazwa towaru:</font> </strong> <br>
  8.  
  9.  
  10. <FORM METHOD="post" ACTION="koszyk.php">
  11.  
  12. <input type="hidden" name="idprod" value="<? echo "$idprod"; ?>">
  13.  
  14. <INPUT TYPE="SUBMIT" NAME="submit" VALUE="Dodaj do koszyka"><br><br>


Po wciśnieciu przycisku dodaj do koszyka przechodzę do pliku koszyk.php

  1. <?
  2.  
  3. if ($_SESSION['login'] =$login)
  4. {
  5.  
  6. $zapytanie = "INSERT INTO koszyk (lp, nazwap) VALUES ('NULL', '".$_POST['idprod']."')";
  7. $wynik = mysql_query($zapytanie) or die ("Próba polączenia się nie udała");
  8.  
  9.  
  10.  
  11. }
  12. else
  13. {
  14. echo "<center><b><font color=red size=3>";
  15. echo "Opcja dostępna po zalogowaniu.";
  16. echo "</center></b></font>";
  17. }
  18.  
  19.  
  20. ?>


No i właśnie tu pojawia się problem w tabeli koszyk:

  1. CREATE TABLE koszyk (
  2. lp int(11) NOT NULL AUTO_INCREMENT,
  3. nazwap varchar(20) NOT NULL DEFAULT '',
  4. PRIMARY KEY (lp)
  5. ) TYPE=MyISAM;


mam dwa wpisy jeden wypełniony , a drugi pusty .
Co może być nie tak?questionmark.gif?
LBO
widac, ze duzo poobcinales tego kodu.. hmmm.. to moze byc wina includowania... gdzie zapomniales skasowac mysql_query($zapytanie); i sie wykonuje dwukrotnie... ale rzeczywiscie.. powstawiaj echo.. np po kazdym wazniejszym uzyciu mysql_query();
jaros
Nie rozumiem o cochodzi z tym:

gdzie zapomniales skasowac mysql_query($zapytanie); i sie wykonuje dwukrotnie... ale rzeczywiscie.. powstawiaj echo.. np po kazdym wazniejszym uzyciu mysql_query();
LBO
bo w kodzie ktory dales nie ma bledu.. INSERTOWANIE wykonuje sie raz... wiec problem lezy gdzies w reszcie kodu
jaros
Sorrki

Na początku pliku koszyk.php mam jeszcze sessin_start();

include ('polaczenie.php);

A wersja php może mieć z tym coś wspólnego??/

korzystam z php 4.1.1
SongoQ
Wersja nie, masz wywolywany 2 razy ten sam kod!
jaros
w którym miejscu jest ten bład?questionmark.gif
LBO
sluchaj... prosze... wpisz po kazdym mysql_query() w ktorym uzywasz komendy INSERT jakies echo(); wpisz w nim krotkie info o miejscu w skrypcie... jak nie bedziesz umial outputu zanalizowac to wroc na forum..

musisz sie nauczyc debugowac swoje skrypty
jaros
Możesz mi to napisać jak to ma wygladać bo nie bardzo wiem jak sie do tego zabrać
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.