Quote Originariamente inviata da David92 Visualizza il messaggio
Perfetto adesso lo script funziona.
Ho però delle domande.

Il seguente codice, serve solo per controllare eventuali problemi con i caratteri e per l'sql injection giusto?
Codice PHP:
$marca mysql_real_escape_string($marca); 
Si. Se per esempio avessi $marca = "l'iphone" (nota l'apice), la tua stringa sql diverrebbe

SELECT * FROM telefoni WHERE marca LIKE '%l'iphone%'

e l'apice di "l'iphone", chiuderebbe quello del LIKE e avresti una query mal formata. Gli attacchi di sql injection sfruttano questa cosa.
Cmq se usi PDO (o mysqli) e i prepared statement non devi preoccuparti perchè l'escape è automatico

L'istruzione che invece verifica che la variabile marca sia "piena" è la seguente?
Codice PHP:
 $sql="SELECT * FROM telefoni WHERE marca LIKE '%$marca%'"
No... l'istruzione di controllo su marca è l'if($marca).
In pratica, se $marca non è vuota, effettui la query e mostri i risultati altrimenti (else) mostri l'errore