Scripts

Simpel zoeksysteem

Dit is gewoon een simpel scriptje om te zoeken naar bestanden. In dit voorbeeld zoek je naar gebruikersnamen uit het grote inlogsysteem v2. Gebruik bij het voorbeeld het trefwoord Oli4. De layout en het weergeven van items die hij gevonden heeft zijn in het voorbeeld niet helemaal hetzelfde, maar het werkt wel hetzelfde.

simpel-zoeksysteem
<?php
//CREATE TABLE `gebruikers` (
//`id` int(11) NOT NULL auto_increment,
//`naam` varchar(50) NOT NULL default '',
//`wachtwoord` varchar(50) NOT NULL default '',
//`status` char(1) NOT NULL default '0',
//`email` varchar(100) NOT NULL default '',
//`actief` char(1) NOT NULL default '0',
//`actcode` varchar(15) NOT NULL default '',
//`lastactive` datetime NOT NULL default '0000-00-00 00:00:00',
//PRIMARY KEY  (`id`)) TYPE=MyISAM AUTO_INCREMENT=1";
?>
index.php:
[code]
<?php
// Variabele voor de ingevoerde zoekterm:
$trefwoord = "";
// Variabele voor titel van de webpagina:
$paginatitel = "Zoeken";
// Variabele voor (fout)meldingen:
$melding = "<p>Typ een trefwoord in het invoervak en klik op de knop Zoeken.</p>";

// Ordernummer doorgeven als sessie-id (sid) in URL's:
if (isset($_GET['sid'])) {
    $url1 = "?sid=" . $_GET['sid'];
    $url2 = "" . $_GET['sid'];
} else {
    $url1 = "";
    $url2 = "$trefwoord";
}

if (isset($_GET['q'])) {
    $trefwoord = $_GET['q'];             // Trefwoord uit het vak 'q'
    $trefwoord = strip_tags($trefwoord); // Tags en code verwijderen
    $trefwoord = trim($trefwoord);       // Witruimte verwijderen
    // Zoeken alleen starten als er een trefwoord is ingevoerd:
    if (strlen($trefwoord) > 1) {
        // MySQL-selectiequery met reguliere expressies:
        $sql  = 'SELECT `naam`, `email` ';
        $sql .= 'FROM `gebruikers` ';
        $sql .= 'WHERE `naam` REGEXP "' . $trefwoord . '" ';
        $sql .= 'OR `email` REGEXP "' . $trefwoord . '" ';
        $sql .= 'ORDER BY `naam` DESC ';
        // Databaseverbinding openen en query uitvoeren:
        define("MYSQL_SERVER", "localhost");
        $verbinding = mysql_connect(MYSQL_SERVER, name, pass) or die(mysql_error());
        mysql_select_db("vleckanie") or die(mysql_error());
        $resultaat = mysql_query($sql) or die(mysql_error());
        // Is er een record gevonden?
        if (mysql_num_rows($resultaat) < 1) {
            mysql_free_result($resultaat); // Resultaatset vrijgeven
            mysql_close($verbinding);      // Databaseverbinding sluiten
            $melding = "<p>Er zijn geen resultaten gevonden voor " . $trefwoord . ".</p>";
        } else {
            $paginatitel = "Zoekresultaten voor " . $trefwoord;
            $melding  = "<p>Er zijn ";
            $melding .= mysql_num_rows($resultaat);
            $melding .= " resultaten gevonden voor " . $trefwoord . ":</p>\n";
            // Begin van een genummerde opsomming:
            $melding .= "<ol>";
            // De gevonden producten toevoegen aan de melding:
            while ($rij = mysql_fetch_assoc($resultaat)) {
                $melding .= '<li><strong>';
                // Gebruikersnaam:
                $melding .= $rij["naam"];
                $melding .= $url2;
                $melding .= '';
                $melding .= '</strong><br>';
                // E-Mailadres van de user:
                $melding .= $rij["email"];
                $melding .= "</li>\n";
            } 





            // Resultaatset vrijgeven en databaseverbinding sluiten:
            mysql_free_result($resultaat);
            mysql_close($verbinding);
            // Einde van de genummerde opsomming:
            $melding .= "</ol>\n";
            // Trefwoord opvallend markeren in de resultaten:
            $melding = eregi_replace($trefwoord, '<strong class="iv">' . $trefwoord . '</strong>', $melding);
        } 
    }
}

?>
<?php include('htmltop.php'); ?>
<div style="background-color: #F2F2EE; border: 1px solid #DDDDDD; width:705px; " id="verkenner">
<h3>Naar gebruikers zoeken</h3>
<form action="zoeken.php<?php echo $url1; ?>" method="get">
  <table border="0" cellpadding="2" cellspacing="2">
    <tr>
      <td align="right"><input name="q" size="55" value="<?php echo $trefwoord; ?>"></td>
      <td align="left">
<?php
// Eventueel ordernummer doorgeven als verborgen formulierveld:
if (isset($_GET['sid'])) {
    echo '<input name="sid" type="hidden" value="' . $_GET['sid'] . '">';
}
?>
        <input style="width: 75px; height: 23px;" type="submit" value="Zoeken">
      </td>
    </tr>
  </table>
</form>
</div>
<?php
echo $melding;
?>
Copyright &copy; 2005 <a href="http://www.easycomputing.com/" lang="en" target="_top" title="Easy Computing">Easy Computing</a>. Alle rechten voorbehouden.  
</body>
</html> 
[/code]
htmltop.php:
[code]
<html>
<head>
<title>Zoeken<title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="style.css" />
<script language="JavaScript" type="text/javascript">
<!--
function confirmLink(link, text) {
 if(typeof(window.opera) != 'undefined') {
  return true;
 }
 var is_confirmed = confirm(text);
 if (is_confirmed) {
  location.href = link;
 }
 return is_confirmed;
}

function addtext(veld,text) {
 text = ''+text+' ';
 if(document.form.elements[veld].createTextRange) {
  document.form.elements[veld].focus();
  document.selection.createRange().duplicate().text = text;
 }else{
  document.form.elements[veld].focus();
  document.form.elements[veld].value += text;
 }
}

//-->
</script>
</head>
<body>
[/code]

Reacties

0
Nog geen reacties.