To jest tablica $ _POST z mojego formularza.
Array ([prescribedid] => Array ([0] => 1 [1] => 2 [2] => 3 [3] => 9 [4] => 13)
Chcę utworzyć zaznaczenie dla dowolnego elementu w Tablicy. Napisałem to, co daje prawidłowy WYBIERZ, ale if(), aby wyeliminować ciągnącą się LUB powoduje, że jest przylegający.
$query = "SELECT * ";
$query .= "FROM prescribed WHERE ";
for($i=0; $i<count($_POST["prescribedid"]); $i++) {
$query .= "prescribedid={$_POST['prescribedid'][$i]} ";
if($i < (count($_POST["prescribedid"])-1)) {
$query .= "OR ";
}
}
Produkuje to:
SELECT * FROM prescribed WHERE prescribedid=1 OR prescribedid=2 OR prescribedid=3 OR prescribedid=9 OR prescribedid=13
Czy istnieje inny sposób na zgrupowaniu Wybiera lub napisać dla(), aby zrobić to czystsze, to znaczy bez ostatniej IF().
'Wskazówka: Można użyć' 'IN' aby uniknąć wielokrotnych' klauzule OR'. '... WHERE przepisane IN (1,2,3,9,13) ....' – 1000111
'Wskazówka:' Musisz użyć wejścia PDO lub vaidate. Ten kod może być użyty do iniekcji SQL. – ineersa