Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Problem z Update
Forum PHP.pl > Forum > Przedszkole
magister666
Witam,
może ktoś będzie potrafił pomóc bo nie rozumiem czemu to nie chce działać tak jak powinno,
problem polega na tym iż nie wykonuje UPDATE tylko dubluje rekordy w bazie :/
Za wszelkie rady z gory dziękuję.

Próbowałem już wielu rzeczy i serio już nie wiem gdzie jest błąd :/

  1. FUNCTION zrobzwroty($dataza,$datazw,$nrtel,$logs,$kat)
  2. {
  3. $polaczenie = pol_mysql();
  4. $sql = "UPDATE zwroty SET
  5. data_zam = '$dataza',
  6. data_zwrotu = '$datazw',
  7. loginrsw = '$logs',
  8. kategoria = '$kat'
  9. WHERE nr_tel = '$nrtel' ";
  10.  
  11. $wyjscie = mysql_query($sql);
  12.  
  13. IF (mysql_affected_rows() == 0)
  14. {
  15. $sql = "INSERT INTO zwroty VALUES ('','$dataza','$datazw','$nrtel','$logs','$kat')";
  16. $wyjscie = mysql_query($sql);
  17. echo "<br><b>Zwrotu: $nrtel nie było w bazie został dodany</b>";
  18. }else
  19. {
  20. echo"<br><center><font color=\"#FF0000\" size=\"3\">Uaktualniono zwrot: $nrtel</font></center>";
  21. }
  22.  
  23. }


Wywołanie funkcji :

  1. zrobzwroty('08-02-15','08-03-06','510100100','jankowalski','TEL.');


Tabela w bazie

  1. -- Struktura tabeli dla `zwroty`
  2. --
  3.  
  4. CREATE TABLE `zwroty` (
  5. `id` int(10) NOT NULL AUTO_INCREMENT,
  6. `data_zam` date NOT NULL DEFAULT '0000-00-00',
  7. `data_zwrotu` date NOT NULL DEFAULT '0000-00-00',
  8. `nr_tel` double NOT NULL DEFAULT '0',
  9. `loginrsw` text NOT NULL,
  10. `kategoria` text NOT NULL,
  11. KEY `id` (`id`)
  12. ) TYPE=MyISAM


Za kazda pomoc bedę dźwięczny winksmiley.jpg
nitek
sprobuj to zrobić trochę inaczej:

  1. <?php
  2. function zrobzwroty($dataza,$datazw,$nrtel,$logs,$kat)
  3. {
  4. $polaczenie = pol_mysql();
  5.  
  6. $sql=&#092;"select count(id) as ilosc from zwroty where nr_tel=&apos;$nrtel&apos;\";
  7. $w=mysql_query($sql);
  8.  
  9. if ($r->ilosc>0)
  10.  {
  11.  $sql = &#092;"UPDATE zwroty SET data_zam = &apos;$dataza&apos;, data_zwrotu  = &apos;$datazw&apos;, loginrsw = &apos;$logs&apos;, kategoria = &apos;$kat&apos; WHERE nr_tel= &apos;$nrtel&apos; \";
  12.  $wyjscie = mysql_query($sql);
  13.  if($wyjscie==1)
  14.  echo &#092;"
  15. <font color=&#092;"#ff0000\" size=\"3\">Uaktualniono zwrot: $nrtel</font color=\"#ff0000\" size=\"3\">\";
  16.  else
  17. echo &#092;"niepowodzenie\";
  18.  }
  19.  
  20. else
  21. {
  22. $sql = &#092;"INSERT INTO zwroty VALUES (&apos;&apos;,&apos;$dataza&apos;,&apos;$datazw&apos;,&apos;$nrtel&apos;,&apos;$logs&apos;,&apos;$kat&apos;)\";
  23.  $wyjscie = mysql_query($sql);
  24. if($wyjscie==1)
  25.  echo &#092;"
  26. [b]Zwrotu: $nrtel nie było w bazie został dodany[/b]&#092;";
  27. else 
  28.  echo &#092;"niepowodzenie\";
  29. }
  30.  
  31. }
  32. ?>


nie wiem, czy gdzieś się nie pomyliłem, ale powinno działać smile.gif


EDIT!!!

Zauważyłem dopiero teraz, że w tabeli pole nr_tel masz zdefiniowane jako double?? questionmark.gif Zmień typ tego pola na VARCHAR. Numer telefonu nie może być liczbą z przecinkiem blinksmiley.gif
magister666
masz rację
zrobiłem podstawowy błąd merytoryczny
ale to chyba dlatego że dopiero od niedawna bawię się w php & MySQL smile.gif

rzeczywiście tak jak napisałeś pomogło (dzięks)

zmieniłem teź double;D

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.