1. ad essere precisi il ciclo confronta delle variabili stringa e, dato che lo spazio è un carattere alfanumerico, se cerchi "auricolare per telefonino legal-x 2310" lui cercherà esattamente la stringa; certo è che se hai "auricolare per telefonino legal-x2310" lui non trova niente! bisognerebbe dotare lo script di un algoritmo più raffinato...

2. se vuoi uno script che aagiunga il link sulla parola nel testo si può fare così: nvece di applicare l'algoritmo ogni volta che visualizzi la news, lo applichi 1 sola volta all'atto di inserimento della news nel db, così quando la richiami non hai problemi di attesa perchè lo script è già tutto pronto; ma c'è un problema: una volta inserito e 'manipolato' il testo della news, se vuoi modificare il testo della news, oppure se cambia qualcosa nel db dei prodotti (è cambiato il nome di un prodotto, hai aggiunto prodotti nel db che erano presenti nella news e che non erano stati riconosciuti, elimini un prodotto...), devi preoccuparti di rilanciare lo script, ma non sul testo 'manipolato', bensì sul testo originale, altrimenti è un casino! tento di spiegare velocemente:

esempio testo originale:
...è possibile acquistare la televisione legal-x 16:9 al prezzo di...

l'algoritmo trova la coincidenza con la stringa:
televisione legal-x 16:9

e modifica il testo come:

codice:
...è possibile acquistare la televisione legal-x 16:9 al prezzo di...
supponi il caso che 1 giorni modifichi il nome del prodotto televisione legal-x 16:9 in televisione legal-x; se riapplichi lo stesso algoritmo come risultato avrai:

codice:
...è possibile acquistare la <a href='scheda_prodotto.aspid_prodotto=23'>televisione legal-x 16:9</a> al prezzo di...
hai inteso? non è bello!

quindi io suggerisco di mettere nel db delle news 2 campi:
1. testo originale
2. testo manipolato dall'algoritmo ricerca prodotti

così conservi sempre l'originale su cui poter mettere le 'mani' quando hai modifiche; attenzione: l'algoritmo va riapplicato al testo originale ad ogni modifica della news e ad ogni modifica del db prodotti (inserimento o elinimazione di records o modifica del campo nome_prodotto di un record esistente)

mentre visualizzi sempre e solo il testo 'manipolato'

tutto chiaro?? fammi sapere, perchè la cosa non è difficile e abbastanza... divertente da fare!!