Mi sono permesso di pulire un pò il codice, almeno rimango in allenamento :mrgreen:
Ho aggiunto la gestione degli errori in caso di mancata connessione, esecuzione query.
Codice PHP:
<?php
$parola_inp = trim($_GET['parola']);
$parola = mysql_real_escape_string($parola_inp);
if(!empty($parola))
{
if($mysql = mysql_connect('localhost', 'zappi', ''))
{
if(!mysql_select_db('my_zappi', $mysql)))
{
die('Errore: ' . mysql_error());
}
}
else
{
die('Errore: ' . mysql_error());
}
$array = array();
$str = 'SELECT * FROM tabella WHERE ';
$tok = strtok($parola, '');
while($tok !== false)
{
array_push($array, $tok);
$str .= 'testo LIKE \'%' . $tok . '%\'';
$tok = strtok(' ');
if($tok !== false)
{
$str .= ' || ';
}
}
if(!($query = mysql_query($str)))
{
die('Errore nella query: ' . mysql_error());
}
$numero_risultati = mysql_num_rows($query);
while($cerca = mysql_fetch_array($query))
{
foreach($array as $word)
{
$colore = generacolore();
$find = array(
'/\[code\](.*?)\[\/code\]/is',
'/\[youtube\](.*?)\[\/youtube\]/is',
);
$cerca["testo"] = preg_replace($find, '', $cerca['testo']);
$cerca["testo"] = str_replace($word, '<span style="background-color: #' . dechex(rand(0, 16777215)) . ';">' . $word . '</span>', $cerca['testo']);
}
echo '<div class="titolo_cerca">Risultati ricerca: ' . htmlentities($parola, ENT_QUOTES) . '</div><br /><br />' . "\n";
echo '<div class="titolo_post">Tabella ' . $numero_risultati . '</div>' . "\n";
echo '<table width="600" border="0" align="center">' . "\n";
echo '<tr><td class="titolo_post">' . "\n" . $cerca['titolo'] . "\n" . '</td></tr>';
echo '<tr><td>Postato in [Site] da il 06/09/2009</td></tr>';
echo '<tr><td class="testo">' . "\n" . $cerca['testo'] . "\n" . '</td></tr>' . "\n";
echo '</table>';
}
}
?>