Per esempio
Codice PHP:$sql ="SELECT * FROM colori where ";
foreach( $arrayColore as $ValoreColore)
{
$sql .= " colore<>'" . $ValoreColore . "' and ";
}
$sql = substr($sql, 0, -4);
echo $sql;
Per esempio
Codice PHP:$sql ="SELECT * FROM colori where ";
foreach( $arrayColore as $ValoreColore)
{
$sql .= " colore<>'" . $ValoreColore . "' and ";
}
$sql = substr($sql, 0, -4);
echo $sql;
ah ok, ancora non conoscevo substr; quindi elimini gli ultimi 4 caratteri (-4) per non far comparire l'ultmo and.
Grazie mille.
Questa query andrà in errore se $arrayColore è vuoto. Se poi $arrayColore non è mai vuoto, puoi anche usarla.
Un'alternativa, che non richiede substr(), potrebbe essere:
Codice PHP:$sql ="SELECT * FROM colori where 1=1 ";
foreach( $arrayColore as $ValoreColore)
{
$sql .= " and colore!='" . addslashes($ValoreColore) . "' ";
}
echo $sql;
In questo modo però avrò l'and all'inizio che non mi fa funzionare la query, giusto?
così:
codice:SELECT * FROM colori where and colore<>'rosso'...
Non proprio.
Avrai:
E se l'array dei colori sarà vuoto, perché magari in taluni casi non vuoi escludere nessun colore, la query diventerà:codice:SELECT * FROM colori where 1=1 and colore<>'rosso'...
Che resta una query sintatticamente corretta, a differenza della query:codice:SELECT * FROM colori where 1=1
Che invece genererebbe un errore.codice:SELECT * FROM colori where
Ah giusto, non avevo visto il where 1=1
Ho da poco cominciato a programmare in PHP dopo anni di ASP e, a differenza di quando iniziai dove il motto era "basta che funzioni", sto cercando di fare le cose per bene già dall'inizio.
Quindi, non è per criticare eh, se qualcuno vedesse il codice potrebbe essere oggetto di critica?