Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL 4.*] Bardziej zaawansowane pytanie
Spirit86
post
Post #1





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Witam, mam 2 tabelę :
1) xn_users
2) xn_ranks

Teraz chcę otrzymać takie coś:

Wybierz (POLA) z tabel xn_users, xn_ranks, takie, że xn_ranks.
->pole xn_user.id równe jest 5
ORAZ
->Jeżeli xn_users.rank_id>0 Pobierz xn_ranks.id=xn_users.rank_id
W Przeciwnym Razie pobierz taką wartość, że rank_min>xn_users.points (pierwsza wartość, która jest większa równa od wymaganej ilości punktów)

Napisałem pytanie do bazy:

  1. SELECT nick, level, sign, from_, sex, avatar, gg, www, points, xn_ranks.rank_name
  2. FROM `xn_users`, `xn_ranks`
  3.  
  4. WHERE xn_users.id='5' AND (
  5. IF(xn_users.rank_id>0 ){
  6. xn_ranks.id = xn_users.rank_id
  7. }
  8. ELSE{
  9. xn_ranks.rank_min>xn_users.points
  10. }
  11. ) LIMIT 1


Niestety, jak się domyślacie nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) .
Pozdrawiam

Ten post edytował Spirit86 7.11.2005, 19:01:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
orson
post
Post #2





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

zwraca błąd (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) if nie może występować w where ...
rozbij to na logiczne zdanie ( tylko OR XOR i AND) ...
jakoś tak (totalnie z palca ale taka zasada jest ...
  1. WHERE xn_users.id='5' AND (
  2. (xn_users.rank_id>0 AND xn_ranks.id = xn_users.rank_id)
  3. XOR
  4. (xn_users.rank_id < 0 AND xn_ranks.rank_min>xn_users.points))

na pewno musisz przerobić

pozdrawiam
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: 11.10.2025 - 18:04