Codice PHP:
$q = 'SELECT `img`, `articolo`, `nome`, `collezione`, `descrizione` FROM `prodotto` WHERE `prodotto`.`articolo` LIKE `% '.$cerca .'%` ';
" LIKE `% '.$cerca .'%` ';"
c'è uno spazio tra % e '.
qualsiasi stringa tu vada a ricercava diventa: "% stringa%" e quindi ti da come risultati tutti i record che contengono si la stringa, ma precededuta da uno spazio.
Poi ti consiglierei di eliminare tutti i ` nelle query e di utilizzare le " per contenere la seconda query.
Il risultato finale non dovrebbe cambiarti ma almeno hai (secondo me) un codice molto più pulito e più a prova di errore.
Codice PHP:
$cerca = $_GET['cerca'];
if(!($cerca)){
$q = 'SELECT img, articolo, nome, collezione, descrizione FROM prodotto ORDER BY nome ASC LIMIT 0, 30 ';
}else{
echo "Risultati trovati: ";
$q = "SELECT img, articolo, nome, collezione, descrizione FROM prodotto WHERE articolo LIKE '%" .$cerca ."%' ";
}
Edit:
Ed invece no, l'uso di ` che hai fatto nel like è errato.
Hai una gestione di errori sull'esecuzione della query?
Se si dovresti trovarti un errore a video sull'uso dei `.
Questo carattere (almeno sul mio
) mi da errore in quanto è "riservato" per i nomi delle colonne e non come identificatore di stringhe.