I write a search engine, here is code:
function search()
{
global $dbh,$dbu,$dbp,$db,$s,$t_data;
/ $s is a variables from GET form /
$q_array = explode(' ',strtolower($s));
$q_num=(integer)count($q_array);
$reg_ex = implode(' ', $keywords);
$link = mysql_connect("$dbh", "$dbu", "$dbp") or die("Eroare: " . mysql_error());
mysql_select_db("$db", $link) or die("Eroare: " . mysql_error());
$q = "SELECTš* FROMš$t_data WHERE (titlu LIKE '%$reg_ex%') OR (url LIKE '%$reg_ex%')
OR (des LIKE '%$reg_ex%') OR (kwd LIKE '%$reg_ex%')" or die("Eroare: " . mysql_error());
$r=mysql_query($q);
$num=mysql_num_rows($r);
if ($num != "0") {
echo "<center><b>Results:</b></center><br>";
$x = 0;
$d = array($x);
for ($c=0;$c<$q_num;$c++)
{
$reg_ex = $q_array[$c];
$link = mysql_connect("$dbh", "$dbu", "$dbp") or die("Eroare: " . mysql_error());
mysql_select_db("$db", $link) or die("Eroare: " . mysql_error());
$q = "SELECTš* FROMš$t_data WHERE (titlu LIKE '%$reg_ex%') OR (url LIKE '%$reg_ex%')
OR (des LIKE '%$reg_ex%') OR (kwd LIKE '%$reg_ex%')" or die("Eroare: " . mysql_error());
$r=mysql_query($q);
$nr=mysql_num_rows($r);
echo "<center>reg_ex = $reg_ex, c = $c, num = $nr, listd = $d</center><br><br>";
while ($row = mysql_fetch_array($r))
{
if (!(in_array ("$row[id]", $d))) {
echo "<b>Title:</b> $row[titlu]<br>";
echo "<b>Url:</b> $row[url]<br>";
echo "<b>Description:</b> $row[des]<br>";
echo "<b>Keywords:</b> $row[kwd]<br><br>";
$d = array_unique(array_push($d, "$row[id]"));
}
}
}
}
else {
echo "<center>Your request \"$reg_ex\" don`t have any results.</center><br>";
}
}
With this code, i get in result repeat for any sites from database.
I want to do one site to be returned just one time.
Sorry for my english.
Thanks.