Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php + mysql]
Forum PHP.pl > Forum > PHP
dudis_888
Witam, na zaliczenie przedmiotu mam za implementować wypożyczalnie filmów dvd. Już mam prawie z kończoną, ale jest pewien problem gdyż nie mogę umieścić zamówienia w bazie danych. Mam już napisaną funkcje ale coś jest z nią nie tak. Zalogowany użytkownik może akceptowac swoje zamówienie i jest wywoływana funkcja "umiesc_zamowienie". Dane klienta mają być pobierane z sessi po jego id. i wydaje mi sie ze w tym tkwi problem. Proszę o pomoc!

  1. function umiesc_zamowienie($szczegoly_zamowienia)
  2. {
  3. extract($szczegoly_zamowienia);
  4. $lacz = lacz_bd();
  5. $lacz->autocommit(FALSE);
  6.  
  7.  
  8. $data = date('Y-m-d');
  9.  
  10. if (isset($_SESSION['SESS_MEMBER_ID']) and isset($_SESSION['LOGINQ']))
  11. {
  12. $sesid=$_SESSION['SESS_MEMBER_ID'];
  13. print "Jestes zalogowany <br>";
  14. }
  15. else
  16. {
  17. print "Nie jestes zalogowany";
  18. exit();
  19. }
  20.  
  21.  
  22. $zapytanie = "insert into wypozyczenie values ('', ".$_SESSION['SESS_MEMBER_ID'].", ".$_SESSION['calkowita_wartosc'].", '$data', 'CZESCIOWE''')";
  23.  
  24.  
  25. $wynik = $lacz->query($zapytanie);
  26. if (!$wynik)
  27. return false;
  28. $id_klient=$_SESSION['SESS_MEMBER_ID'];
  29.  
  30. $zapytanie = "select id_wypozyczenie from wypozyczenie where
  31. id_klient = $id_klient and
  32. wartosc > ".$_SESSION['calkowita_wartosc']."-.001 and
  33. wartosc < ".$_SESSION['calkowita_wartosc']."+.001 and
  34. data = '$data' and
  35. stan_zam = 'CZESCIOWE'";
  36. $wynik = $lacz->query($zapytanie);
  37. if($wynik->num_rows>0)
  38. {
  39. $wypozyczenie = $wynik->fetch_object();
  40. $idwyp = $wypozyczenie->id_wypozyczenie;
  41. }
  42. else
  43. return false;
  44.  
  45.  
  46. foreach($_SESSION['koszyk'] as $id_film => $ilosc)
  47. {
  48. $dane=pobierz_dane_film($id_film);
  49. $zapytanie = "delete from produkty_wypozyczenie where
  50. id_wypozyczenie = '$idwyp' and id_film = '$id_film'";
  51. $wynik = $lacz->query($zapytanie);
  52. $zapytanie = "insert into produkty_wypozyczenie values
  53. ('$idwyp', '$id_film', ".$dane['cena'].", $ilosc)";
  54. $wynik = $lacz->query($zapytanie);
  55. if(!$wynik)
  56. return false;
  57. }
  58.  
  59. $lacz->commit();
  60. $lacz->autocommit(TRUE);
  61.  
  62. return $idwyp;
  63. }


Struktura tabeli klient
  1. CREATE TABLE IF NOT EXISTS `klient` (
  2. `id_klient` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `login` varchar(50) NOT NULL,
  4. `haslo` varchar(50) NOT NULL,
  5. `email` varchar(50) NOT NULL,
  6. `imie` varchar(50) NOT NULL,
  7. `nazwisko` varchar(50) NOT NULL,
  8. `adres` varchar(50) NOT NULL,
  9. `kod_pocztowy` varchar(5) NOT NULL,
  10. `miejscowosc` varchar(50) NOT NULL,
  11. `telefon` varchar(16) NOT NULL,
  12. PRIMARY KEY (`id_klient`)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;


Struktura tabeli wypozyczenie
  1. CREATE TABLE IF NOT EXISTS `wypozyczenie` (
  2. `id_wypozyczenie` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `id_klient` int(11) NOT NULL,
  4. `data` date NOT NULL,
  5. `wartosc` float(6,2) DEFAULT NULL,
  6. `stan_zam` char(10) DEFAULT NULL,
  7. PRIMARY KEY (`id_wypozyczenie`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


Struktura tabeli produkty
  1. CREATE TABLE IF NOT EXISTS `produkty_wypozyczenie` (
  2. `id_wypozyczenie` int(10) UNSIGNED NOT NULL,
  3. `id_film` int(11) NOT NULL,
  4. `cena` float(4,2) NOT NULL,
  5. `ilosc` tinyint(3) UNSIGNED NOT NULL
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Zyx
Kod jest tak beznadziejnie napisany, że nawalić może praktycznie wszystko. MySQL nie zgłasza Ci błędów? Próbujesz używać transakcji na tabelach MyISAM - sam sobie odpowiedz czy to ma sens...
dudis_888
szukam pomocy a nie krytyki, dopiero sie ucze pisać w php, to jak twoim zdanie kod powinien wyglądać?
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.