Avatar billede trupfg Nybegynder
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!
Avatar billede 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&oslash;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&nbsp;&nbsp;</b></td><td align=\"left\" nowrap><b>Post 2&nbsp;af&nbsp;&nbsp;</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
}
?>
Avatar billede trupfg Nybegynder
26. august 2001 - 22:04 #3
el_barto>

Hvor connecter den til databasen?
Avatar billede Slettet bruger
26. august 2001 - 22:09 #4
Det gør den ikke, du skal jo også lave lidt! :)
Avatar billede mortenfn Nybegynder
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>\";
}
?>
Avatar billede trupfg Nybegynder
12. februar 2002 - 22:02 #6
spm. lukket!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester