Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja zapytania
Largo
post
Post #1





Grupa: Zarejestrowani
Postów: 203
Pomógł: 6
Dołączył: 11.09.2005

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


Witam,

Czy podane poniżej zapytanie jest poprawne ( nie ja jestem jego autorem, mi się ono nie podoba! ):

  1. UPDATE ibf_members SET fg = IF ( id = 1, fg + 1,fg - 1 ) WHERE id IN ( 1, 2 )


Zapytanie ma aktualizować kwoty ( fg ) - jednej dodawać, drugiej odejmować. Nie wiem po co jest ten IF ( czy istnieje takie ID? ), a IN z kolei rozumiem. Czy to jest optymalne?

Pozdrawiam,
Largo

Ten post edytował Largo 10.04.2009, 20:44:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Largo
post
Post #2





Grupa: Zarejestrowani
Postów: 203
Pomógł: 6
Dołączył: 11.09.2005

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


Witaj,

  1. <?php
  2. $this->ipsclass->DB->simple_construct( array( 'update' => 'members',
  3.                                                          'set'    => 'fg=IF(id='.$this->ipsclass->input['to_id'].', fg+'.$this->ipsclass->input['amount'].', fg-'.$this->ipsclass->input['amount'].')',
  4.                                                          'where'  => 'id IN (''.$this->ipsclass->input['to_id'].'','.$this->ipsclass->member['id'].')' ) );
  5.            $this->ipsclass->DB->simple_exec();
  6. ?>


Trochę kodu PHP z kodem IP.Board podam, ale powinieneś łatwiej zrozumieć. Oto logika:

Są 2 osoby. Jedna np. chcę kupić przedmiot ( gra ), i aby tego wykonać musi wysłać FG ( Forum Gold dlatego nazwa FG ), jej musi odjąć od konta i tamtemu ma podać tą kwotę. Chyba do tej pory jasne? :-) Po co to id w IF? I jak działa IN, skoro są 3 parametry?

$this->to_id - ID osoby, do której FG jest przekazywane
$this->ipsclass->member['id'] - moje ID, osoby która aktualnie jest zalogowana i wysłała FG
$this->ipsclass->input['amount'] - kwota

Rozumiesz teraz problem? Nie mówiąc o dupnej składni zapytanie ( $this->ipsclass->DB->do_update ) to na dodatek nie ten typ funkcji :-)

Pozdrawiam,
Largo

Ten post edytował Largo 10.04.2009, 21:25:06
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 27.12.2025 - 14:37