Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql]Problem z aktualizacją bazy, Problem z aktualizacją bazy
wrozansk
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 5.05.2012

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


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,
Go to the top of the page
+Quote Post
potreb
post
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


'liczba_sztuk' = `liczba_sztuk` + 1 ...


--------------------

Go to the top of the page
+Quote Post
wrozansk
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 5.05.2012

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


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,
Go to the top of the page
+Quote Post
kpt_lucek
post
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

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


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."'


--------------------


Cytat
There is a Bundle for that
Lukas Kahwe Smith - October 31th, 2014
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 04:41