Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] jak zaktualizowac licznik
Forum PHP.pl > Forum > PHP > Frameworki
AxZx
witam

prosta sprawa - po wejsciu na strone ze zdjeciem zwieksza sie wartosc w kolumnie licznik.
jak to wykonac w symfony poprawnie?

takie rozwiazanie chyba nie jest za dobre
  1. <?php
  2. $zdjecie->setLicznik($zdjecie->getLicznik() + 1);
  3. $zdjecie->save();
  4. ?>
LBO
A działa? Bo ja działa to jest poprawne.
AxZx
poprawne moze jest ale czy dobre?

  1. UPDATE zdjecie SET LICZNIK = 2, UPDATED_AT = '2008-08-05 18:33:52' WHERE zdjecie.idzdjecie=1


a nie powinno byc przypadkiem
  1. UPDATE zdjecie SET LICZNIK = LICZNIK + 1, UPDATED_AT = '2008-08-05 18:33:52' WHERE zdjecie.idzdjecie=1

?
jak takie cos uzyskac?
LBO
Czekaj czekaj, przecież wyświetlasz zdjęcie prawda? Czyli pobierasz dane wraz z kolumną licznik, więc po co na bazie wymuszać jakiekolwiek operacje, skoro możesz je zrobić w PHP - czyli tak jak masz je teraz.
AxZx
powiedzmy ze od czasu pobrania danych do zaktualizowania danych nie moze byc wykonane nic innego.
czyli nie moze byc najpierw pobranie pozniej aktualizacja na podstawie pobranych danych. musi to byc zrobione w bazie.
AxZx
co robie zle?
  1. <?php
  2. $c = new critieria();
  3. $c->add(NewsPeer::STATUS, true);
  4.  
  5. $con = Propel::getConnection();
  6. $update = new Criteria();
  7. $update->add(NewsPeer::LICZNIK, "licznik = licznik + 1", Criteria::CUSTOM);
  8. BasePeer::doUpdate($c, $update, $con);
  9. ?>

korzystam z Symfony 1.0.16
LBO
Może tak?

ciach!

edit:

Niby wprowadzono nowe Criteria oznaczone numerkiem 2.0 i róznice są nastepujace (z manuala)

Criteria 1.0
  1. <?php
  2. $c = new Criteria();
  3. $c->add(AuthorPeer::NAME, "char_length(name) = 4", Criteria::CUSTOM);
  4. ?>


Criteria 2.0
  1. <?php
  2. $c = AuthorPeer::getCriteria();
  3. $c->add(new LiteralSql("char_length(name) = 4"));
  4. ?>
AxZx
to wszystko przerabialem.

chyba mam jakas dziwna wersje Criteria w takim razie. bo ani jedno ani drugie rozwiazanie nie dziala.
2.0 na pewno nie mam bo wogole takiej klasy jak LiteralSql nie mam.

info z pliku Criteria.php

Kod
$Id: Criteria.php 561 2007-02-01 02:09:52Z hans $
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.