検索エンジンをゼロから構築しています。
- 複数のデータベース内のさまざまなテーブルをスキャンします。
- 指定された列のみを検索します。
- 検索語は
explode()
複数語検索の場合 foreach
テーブルを介して 反復します。
でコード ベースを構成するのに問題がありますLIMIT
。のみ表示したいDISTINCT
。
たとえばJoe Schmoe
、コードを検索するfirst = joe
と、次にが検索されlast = schmoe
、検索ごとに結果が表示されます。しかし、2 つの検索に対して 1 つの結果のみを表示したいと考えています。
<?php
echo "<h1>Search Results</h1>";
echo "<table style='width: 100%;'>";
$a = $_GET["q"];
$b = explode(" ", $a);
include 'db_connect3.php';
mysql_select_db("db440035579", $con);
foreach($b as $c){
$sql="SELECT * FROM users WHERE first LIKE '%$c%' || last LIKE '%$c%'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo "<a href='applications.php?act=search&uid=$row[7]'>$row[5], $row[4]</a>";
}
}
mysql_close($con);
?>