Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]Problem z aktualizacją bazy
Forum PHP.pl > Forum > Przedszkole
wrozansk
Witam,

Mam problem z jedną funkcją.

  1. public function inkrementujLiczbeSztuk($idKsiazki, $idSesji)
  2. {
  3. $query = "UPDATE 'koszyk' SET 'liczba_sztuk' = '(liczba_sztuk + 1)' where 'id_ksiazki' = '$idKsiazki' and 'id_sesji' = '$idSesji'";
  4. mysql_query($query);
  5. }



Wywołanie funkcji wygląda następująco:

  1. if(isset($_POST['id_ksiazki'])) {
  2. if($koszyk->czyIstnieje($_POST['id_ksiazki'], session_id())) {
  3. // ksiazka już istnieje w koszyku, zwiększ ilość
  4. // TODO: dodać odpowiednią funkcjonalnoś
  5. if($koszyk->inkrementujLiczbeSztuk($_POST['id_ksiazki'], session_id()));
  6. echo 'ok';
  7. } else {
  8. // książki nie ma w koszyku, dodaj do koszyka
  9. if($koszyk->dodaj($_POST['id_ksiazki'], session_id()))
  10. echo 'ok';
  11. }
  12. }


Jest tu też zawarta funkcja dodaj, która działa bez zarzutu. Na wypadek jakby było potrzebne, oto kod tej funkcji:

  1. public function dodaj($idKsiazki, $idSesji)
  2. {
  3. $dane = array(
  4. 'id_ksiazki' => $idKsiazki,
  5. 'id_sesji' => $idSesji
  6. );
  7.  
  8. return $this->_db->insert('koszyk', $dane);
  9. }


Próba wywołania następującego zapytania w bazie danych kończy się sukcesem:
  1. UPDATE koszyk SET liczba_sztuk = (liczba_sztuk + 1) WHERE id_ksiazki = '1' AND id_sesji = 'b93cd08a37eea98dab1f4f5ad0be63e8'


Niestety wywołanie funkcji php nie zwiększa liczby sztuk. Zostawia ją nietkniętą.

Czy może mi ktoś wyjaśnić gdzie leży błąd? Czy jest to składnia funkcji, czy może jej wywołanie?

Pozdrawiam,
potreb
'liczba_sztuk' = `liczba_sztuk` + 1 ...
wrozansk
Niestety nadal nie działa.

Próbowałem jeszcze na takie sposoby:

  1. public function inkrementujLiczbeSztuk($idKsiazki, $idSesji)
  2. {
  3. mysql_query("UPDATE koszyk SET liczba_sztuk = liczba_sztuk + 1 where id_ksiazki = '".$idKsiazki."' and id_sesji = '".$idSesji."'");
  4.  
  5. }


  1. public function inkrementujLiczbeSztuk($idKsiazki, $idSesji)
  2. {
  3. mysql_query("UPDATE koszyk SET `liczba_sztuk` = `liczba_sztuk` + 1 WHERE `id_ksiazki` = ".$idKsiazki." and 'id_sesji' = '".$idSesji."'");
  4. }


  1. public function inkrementujLiczbeSztuk($idKsiazki, $idSesji)
  2. {
  3. mysql_query("UPDATE koszyk SET `liczba_sztuk` = `liczba_sztuk` + 1 WHERE `id_ksiazki` = '" . $this->_db->escape($idKsiazki) . "' and 'id_sesji' = '$idSesji'");
  4. }


Może pomogą następujące informacje o typach pól:

id_ksiazki - int(11)
id_sesji - varchar(100)
liczba_sztuk - int(11)

Pozdrawiam,
kpt_lucek
Cytat(wrozansk @ 5.05.2012, 17:09:04 ) *
[...]

  1. public function inkrementujLiczbeSztuk($idKsiazki, $idSesji)
  2. {
  3. mysql_query("UPDATE koszyk SET `liczba_sztuk` = `liczba_sztuk` + 1 WHERE `id_ksiazki` = ".$idKsiazki." and 'id_sesji' = '".$idSesji."'");
  4. }

[...]

Zobacz to: `id_ksiazki` = ".$idKsiazki." smile.gif
a to: 'id_sesji' = '".$idSesji."'
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.