Ho una piccola e stupidissima classe che ha come scopo un piccolo motore di ricerca per la mia stupida applicazione, ho usato match against , invece di like/operatore modulo davanti dietro etcc. ma vedo poche differenze, cioè: se ho un utente che si chiama patella e un'altro patellaen, non me li stampa a video entrambi, ma necessitano 2 differenti ricerche, nel senso che, tralasciando il fatto che minmo devo inserire 4 lettre come stringa ma dipende da php.ini/penso, la query match against poco conta..
insomma posto il codice
Codice PHP:
class search_engine
{
public $keysearch ;
public $query;
function __construct ()
{
$this->keysearch = addslashes ($_GET['cerca']);
$this->query = mysql_query ("SELECT *
FROM utenti
WHERE MATCH(id,nome,cognome,foto) AGAINST ('$this->keysearch' in boolean mode) order by data asc");
}
function __lenght_string(){
if (strlen ($this->keysearch) < 4){
echo "inserire almeno 4 caratteri";
}
}
function __is_empty($num_rows){
if (empty ($this->keysearch)){
return ;
}else
{
$num_rows = mysql_num_rows ($this->query);
if ($num_rows < 1){
print "nessun risultato utile per" . $this->keysearch;
}else{
print $num_rows . "risultati trovati per " . $this->keysearch;
}
}
}
function __core ($core_for_users){
while ($read = mysql_fetch_array ($this->query)){
$numfoto = $read['foto'];
if (empty ($numfoto)){
echo "<div id='div_search'>";
echo '
<a href="profile.php?cerca=' .$read['id'].'">'.$read[nome].' @ '. '
'.
$read ['foto'].
$read['cognome'].'
';
echo "[img]images/Clip/defaultmedium.gif[/img]".'</a>'.'
'.'</p>';
}else if ($read['foto'] == true){
echo "<div id='div_search'>";
echo '
<a href="profile.php?cerca='.$read['id'].'">'.$read['nome']. ' @ '.'
'.
$read['cognome'].'
';
echo "[img]images/avatar/$numfoto[/img]".'</a>'.'
'.'</p>';
}
}
}
}