Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sprawdzanie czy istnieja w bazie dane.....
Forum PHP.pl > Forum > Bazy danych
Yacho
Mam bardzo prosta baze danych :

|kod|uzyty|
|aaa| 0|
|bbb| 1|
|ccc| 1|

itp itd

pole kod to string (unikalny) varchar pole uzyty to 1 lub 0

i teraz tak user na stronie podaje

np 3 kody
ja musze sprawdzic czy :

podane kody sa w bazie (tzn czy istnieja w polu kod)
Jesli istnieja to czy odpowiadajace tym 3m istniejacym kodom pole uzyty dla kazdeggo kodu wynosi 0

myelalem o czyms takim

[sql:1:fca5a5a622]Select * FROM tabela WHERE uzyty='0' AND kod='$kod1' OR kod='$kod2' OR kod='$kod3'[/sql:1:fca5a5a622]

W takim przypadku gdy podane trzy kody istnieja w bazie zostana zwrocone wiec jesli podane zostaly dane spelniajace zalozenia otrzymam zawsze w zwrocie 3 rekordy...
ale czy takie zapytanie jest poprawne i dziala tak jakbym sobie tego zyczyl ?
plz help sad.gif[/sql]
FiDO
Masz pewien blad logiczny, poniewaz operator AND ma wyzszy priorytet niz OR, wiec Twoje zapytanie tak naprawde wyglada tak:
[sql:1:d3490dc6b0]Select * FROM tabela WHERE (uzyty='0' AND kod='$kod1') OR kod='$kod2' OR kod='$kod3'[/sql:1:d3490dc6b0]
a powinno wygladac tak:
[sql:1:d3490dc6b0]Select * FROM tabela WHERE uzyty='0' AND (kod='$kod1' OR kod='$kod2' OR kod='$kod3')[/sql:1:d3490dc6b0]
ale mozna to zapisac wygodniej...
[sql:1:d3490dc6b0]Select * FROM tabela WHERE uzyty='0' AND kod IN ('$kod1', '$kod2', '$kod3')[/sql:1:d3490dc6b0]
Yacho
dziekuje bardzo - wlasnie mi cos tak smierdzialo winksmiley.jpg
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.