26. august 2001 - 20:40
Der er
5 kommentarer og
1 løsning
Søgemaskine!
Jeg har brug for en søgemaskine som søger i en Mysql database, men har absolut ingen forstand på Mysql!
HEEELLLLPPPP!
Slettet bruger
26. august 2001 - 21:47
#2
Her er en jeg har rettet lidt i, men den er ret meget lig den jeg selv bruger:
Det er svært at komme med en færdig søgemaskine, men denne skulle være til at overskue at rette i.
Og det lærer man jo også mest af! :)
<?PHP
if ($valg) {
///hvilken tabel skal den søge i
$tabelnavn = \'film\';
///hvilket felt skal den søge i
$felt = \'beskrivelse\';
$betingelse = \"SELECT * from $tabelnavn WHERE id >= \'1\'\";
$words = str_replace(\"&\",\" \",$soegeord);
$words = str_replace(\"+\",\" \",$words);
$words = str_replace(\",\",\" \",$words);
$words = ereg_replace(\'( +)$\',\',\',$words) .\".\";
$words = str_replace(\",,\",\",\",$words);
$words = str_replace(\".\",\"\",$words);
$words2 = $words;
$words = split(\",\", $words);
$number_of_words = count($words);
$i = -1;
do {
++$i;
$betingelse = \"$betingelse AND ($felt like \'%$words[$i]%\' OR\";
} while ($tal-1 > $i);
$betingelse = \"$betingelse $felt like \'%$words[$i]%\')\";
$betingelse = \"$betingelse ORDER BY id DESC\";
$sql = $betingelse;
///slut split af ord///
$limit=5; // Hvor mange resultater på hver side
$numresults = mysql_query($sql);
$numrows = mysql_num_rows($numresults);
if (empty($offset)) {
$offset=0; // Hvor man skal starte hvis intet er angivet. Default er \'0\'
}
// Hent dine data her
$newsql = \"$sql LIMIT $offset, $limit\";
$result = mysql_query($newsql);
$row = mysql_fetch_array($result);
// beregn antal sider
$pages=intval($numrows/$limit);
if ($numrows%$limit) {
$pages++;
}
// Her starter layout
echo \"<table align=\\\"center\\\"><tr><td>\";
for ($i=1;$i<=$pages;$i++) {
$newoffset=$limit*($i-1);
}
if (!$row) {
} else {
echo \"<br>Der blev fundet $numrows resultater - Her vises nummer \"; echo $offset+1; echo \" til \";
if ($numrows >= $offset+5) { echo $offset+5;
} else {
echo $numrows;
}
}
echo \"</td></tr></table>\";
// Vis dine resultater
?>
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"1\">
<tr>
<td width=\"600\" align=\"left\" valign=\"top\"><b>Søgeresultat.</b>
</td></tr>
<tr>
<td align=\"center\" bgcolor=\"#000000\" height=\"1\" colspan=\"3\"></td>
</tr>
<tr>
<td width=\"100%\" align=\"left\"><b>Overskrift</b></td><td align=\"left\"><b>Post 1 </b></td><td align=\"left\" nowrap><b>Post 2 af </b></td>
</tr>
<?PHP
if (!mysql_num_rows($result)) {
echo \"<tr><td colspan=\\\"3\\\">Intet fundet</td></tr></table>\";
}
else {
/////
do {
$sql = \"SELECT * FROM $felt WHERE id = \'$row[id]\'\";
$result2 = mysql_query($sql);
$row2 = mysql_fetch_array($result2);
$tal = $tal + 1;
if($tal % 2 == 1) {
$bg = \'bgcolor =\"gray\"\';
} else {
$bg = \'\';
}
echo \"<tr><td width=\\\"100%\\\" align=\\\"left\\\" $bg>$row[felt1]</td><td align=\\\"left\\\" $bg>$row[felt2]</td><td align=\\\"left\\\" $bg>$row[felt3]</td></tr>\";
} while ($row = mysql_fetch_array($result));
?>
<tr>
<td align=\"center\" bgcolor=\"#000000\" height=\"1\" colspan=\"3\"></td>
</tr>
<?PHP
echo \"</table><table width=\\\"100%\\\" border=\\\"0\\\"><tr>\";
///
if ($offset != \'0\')
{
$prev = $offset - 5;
echo \" <td width=\\\"33%\\\"><a href=\\\"$PHP_SELF?valg=$valg&send=jep&film=$film&type=$type&dato=$dato&alfabet=$alfabet&offset=$prev\\\"><img src=\\\"images/tilbage.gif\\\" width=\\\"80\\\" height=\\\"15\\\" alt=\\\"\\\" border=\\\"0\\\"></a></td>\";
}
else
{
echo \" <td width=\\\"33%\\\"></td>\";
}
for ($i = 1;$i <= $pages;$i++) {
$newoffset = $limit * ($i-1);
if ($offset == $newoffset) {
$next = $i * 5;
print (\"<td width=\\\"33%\\\" align=\\\"center\\\">Side $i</td>\");
} else {
}
}
$count = $pages * 5;
if ($count == $next)
{
echo \" <td width=\\\"33%\\\"></td>\";
}
else
{
echo \"<td width=\\\"33%\\\" align=\\\"right\\\"><a href=\\\"$PHP_SELF?valg=$valg&send=jep&film=$film&type=$type&dato=$dato&alfabet=$alfabet&offset=$next\\\"><img src=\\\"images/tilbage.gif\\\" width=\\\"76\\\" height=\\\"15\\\" alt=\\\"\\\" border=\\\"0\\\"></a></td>\";
}
///
echo \"</tr>
</table>\";
}
} else {
?>
<form name=\"get\" method=\"get\" action=\"soeg.php\">
<table cellspacing=\"2\" cellpadding=\"2\" border=\"0\">
<tr>
<td align=\"right\">Find</td>
<td><input type=\"text\" size=\"10\" style=\"width: 97px\" maxlength=\"40\" name=\"soegeord\" class=\"text\"></td>
</tr>
<tr>
<td align=\"right\">i</td>
<td><select name=\"valg\">
<option value=\"Programmer\" <?PHP if ($valg == \'Programmer\') echo \"selected\" ?>>Programmer</option>
<option value=\"Artikler\" <?PHP if ($valg == \'Artikler\') echo \"selected\" ?>>Artikler</option>
<option value=\"Film\"<?PHP if ($valg == \'Film\') echo \"selected\" ?>>Film</option>
<option value=\"Undertekster\"<?PHP if ($valg == \'Undertekster\') echo \"selected\" ?>>Undertekster</option>
<option value=\"Forum\"<?PHP if ($valg == \'Forum\') echo \"selected\" ?>>Forum</option>
</select></td>
</tr>
<tr>
<td></td><td><input type=\"image\" src=\"images/soeg2.gif\" alt=\"Søg\" border=\"0\"></td>
</tr>
</form>
</table>
<?PHP
}
?>
26. august 2001 - 22:42
#5
en lille en:
<form method=\"POST\" action=\"<?echo $php_self;?>\">
<p><input type=\"text\" name=\"find\" size=\"20\">
<input type=\"submit\" value=\"Send\" name=\"action\">
<input type=\"reset\" value=\"Nulstil\"></p>
</form>
<?php
if(!$find)exit;
mysql_connect($sql_host,$sql_user,$sql_passwd);
mysql_select_db(\"$db\");
$result = mysql_query(\"SELECT rows FROM tabel where rows like \'%$find%\'\");
while ($row = mysql_fetch_array($result)){
echo $row[svar],\"<br><br>\";
}
?>