Witam. Mam jeszcze jeden problem. Jak wstawić pole tabeli jako warunek?
uno to pole tabeli i jeśli ma wartość 1 to zwraca fałsz, jeśli 0 prawdę.
<?php if(uno = 0) $zapytanie = "UPDATE `users` SET `iq` = `iq` + 1, `uno` = '1' WHERE `nick`='$_POST[nick]'"; else ?>
Mając już jej wartość będziesz mógł użyć jej w warunku.
SELECT uno FROM users WHERE nick = ?
... $zapytanie = "SELECT `uno` FROM `users` WHERE `nick` = './'$_POST[nick];"; if(uno == 0) $zapytanie = "UPDATE `users` SET `iq` = `iq` + 1, `uno` = '1' WHERE `nick`=''./'$_POST[nick]'"; ...
... $zapytanie = "SELECT `uno` FROM `users` WHERE `nick` = $_POST[nick];"; if(uno == 0) $zapytanie = "UPDATE `users` SET `iq` = `iq` + 1, `uno` = '1' WHERE `nick`='$_POST[nick]'; $idzapytania = mysql_query($zapytanie); echo 'Dodano questa'; ...
$zapytanie = "SELECT `uno` FROM `users` WHERE `nick` = $_POST[nick];"; if(uno == 0) $zapytanie = "UPDATE `users` SET `iq` = `iq` + 1, `uno` = '1' WHERE `nick`='$_POST[nick]'"; else
// $_POST[nick] = bla bla bla' OR '1' = '1 $zapytanie = "UPDATE `users` SET `iq` = `iq` + 1, `uno` = '1' WHERE `nick`='$_POST[nick]'"; // Wynik: UPDATE `users` SET `iq` = `iq` + 1, `uno` = '1' WHERE `nick`='bla bla bla' OR '1' = '1'"; // Efekt? Zapytanie aktualizuje dane wszystkich użytkowników, a nie tylko jednego. $zapytanie = "SELECT `uno` FROM `users` WHERE `nick` = './'$_POST[nick];"; // To zapytanie to w ogóle zawsze będzie błędy powodować: // SELECT `uno` FROM `users` WHERE `nick` = './'crozin; $zapytanie = "SELECT `uno` FROM `users` WHERE `nick` = $_POST[nick];"; // Tutaj to wartość z POSt[nick] nie zostanie nawet potraktowana jako tekst, a fragment samego zapytania // Przy przykładowej wartości "Dirk" baza będzie myślała, że robisz porównanie: nick = Dirk, gdzie zarówno nick i Dirk to nazwy kolumn, a nie tekst
A tak w ogóle to nie powinieneś w ogóle używać funkcji mysql_*() tylko przykładowo PDO - w manualu przykłady.
$zapytanie = ".... nick = '$nick' ....";
if (...) { ... } else { ... }
$zapytanie = "SELECT `uno` FROM `users` WHERE `nick` = $_POST[nick];";