sweter360
5.09.2013, 22:28:31
Witam,
mam problem związany z zapytaniem:
$mailquery = query("SELECT * FROM `mail` WHERE `nazwa` = '$nazwa' & `cenak` = '$najtansza_konk' & `cenah` = '$cenah");
Czy to zapytanie jest poprawne? Jak mam zrobić do tego instrukcję warunkową IF tak, żeby gdy wtedy i tylko wtedy gdy wszystkie trzy argumenty są poprawne owa instrukcja się wykonała.
Przykładowo gdy wszystkie trzy argumenty pasują instrukcja się wykonuje gdy chodź jeden nie pasuje if się nie wykonuje.
Bardzo proszę o pomoc.
mmmmmmm
5.09.2013, 22:43:21
Zapytanie nie jest poprawne:
1. w SQL NIE stosuje się &, tylko AND
2. generalnie nalezy unikać stosowania *
3. domyślam się, że `cenak` i `cenah`, to liczby, więc nie powinny być użyte w apostrofach, ale bez nich. część dziesiętna oddzielona kropką (tak, wiem, że MySQL pozwala na zapis w apostrofach, ale to jest tylko MySQL). Jeśli już chcesz pisać w apostrofach, to brak jednego na końcu.
4. zapytanie nieodporne na SQLinjection
sweter360
5.09.2013, 23:13:48
No dobra mam
$mailquery = query("SELECT * FROM `mail` WHERE `nazwa` = '$nazwa' AND `cenak` = '$najtansza_konk' AND `cenah` = '$cenah'");
i jak napisać do tego IF żeby był poprawny wtedy i tylko wtedy jak wszystkie te argumenty są poprawne czyli istnieją w bazie odpowiedniki tych zmiennych?
Turson
5.09.2013, 23:34:34
mysql_num_rows() lub w przypadku PDO rowCount()
sweter360
6.09.2013, 08:40:54
Przy zapytaniu z postu nr 3 i użyciu mysql_num_rows() mam:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in..
Cytat(sweter360 @ 6.09.2013, 09:40:54 )

Przy zapytaniu z postu nr 3 i użyciu mysql_num_rows() mam:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in..
A podajesz w parametrze zapytanie?
Turson
6.09.2013, 10:49:14
Najlepiej wklej całość, jasnowidzami nie jesteśmy jak to napisałeś