Avatar billede daft Nybegynder
07. december 2004 - 11:39 Der er 2 kommentarer og
2 løsninger

Søgefunktion

Jeg har lavet en søgefunktion på min hjemmeside, men står over for et problem:
Hvis man ikke indtaster noget i søgefeltet, kommer hele databasen frem. Jeg vil gerne rette denne fejl, så man mindst skal indtaste 2 tegn i søgefeltet for at få nogle resultater. Er der nogle er jer som kan hjælpe mig med det?
Daft
Vedlægger lige scriptet:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<meta name="GENERATOR" content="DBTools DBManager 2.0">
<title>Results</title>

<body text="#000000" link="#0000EE" vlink="#000000" alink="#3366FF" bgcolor="#eefffa">
<?php
if(isset($_POST['tekst_soeg1'])) {
  $db = mysql_connect("localhost", "xxxx", "xxxx");
 
  $result = mysql_select_db("xxxx", $db);
?>
<div align="center">
    <center>
    <table border="0" cellpadding="0" cellspacing="1" width="100%">
<?php
  $res=mysql_query("SELECT varenummer,varenavn,pris FROM varekatalog WHERE varenavn LIKE '%$_POST[tekst_soeg1]%' OR varenummer LIKE '%$_POST[tekst_soeg1]%' ORDER BY varenummer DESC");

echo "<tr>";
    echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Varenummer</font></td>";
    echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Navn</font></td>";
    echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Pris</font></td>";
    echo "</tr>";

while ($row = mysql_fetch_array($res)){
echo "<tr>";
echo "<td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>$row[varenummer]</font></td>";
echo "<td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>$row[varenavn]</font></td>";
echo "<td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>$row[pris]</font></td>";
echo "</tr>";
}
} else {
?>
</table>
    </center>
</div>
<form method=post action=tekst_soeg1.php target="hovedramme" onsubmit="parent.indhold0.location.href = 'blank.htm'; return true;">
<input type=text name=tekst_soeg1>
<input type=submit value=søg>
</form>
<?php
}
?>
</body>
</html>
Avatar billede schaefner Juniormester
07. december 2004 - 11:41 #1
if (isset($_POST['tekst_soeg1']) && strlen($_POST['tekst_soeg1']) >= 2) {
Avatar billede Slettet bruger
07. december 2004 - 11:44 #2
Du kan bruge strlen() funktionen.

Så du skriver
if (strlen($_POST[tekst_soeg1]) > 1) {
//bla bla bla
} else {
  echo "Du skal indtaste mindst 2 tegn!";
}
Avatar billede schaefner Juniormester
07. december 2004 - 11:53 #3
I øvrigt et svar :)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<meta name="GENERATOR" content="DBTools DBManager 2.0">
<title>Results</title>

<body text="#000000" link="#0000EE" vlink="#000000" alink="#3366FF" bgcolor="#eefffa">

<div align="center">
    <center>
<?php
if (isset($_POST['tekst_soeg1'])) {
    if (strlen($_POST['tekst_soeg1']) >= 2) {
        mysql_connect("localhost", "xxxx", "xxxx");
        mysql_select_db("xxxx");
   
        $result = mysql_query("SELECT varenummer,varenavn,pris FROM varekatalog WHERE varenavn LIKE '%".$_POST['tekst_soeg1']."%' OR varenummer LIKE '%".$_POST['tekst_soeg1']."%' ORDER BY varenummer DESC");
       
        echo "<table border='0' cellpadding='0' cellspacing='1' width='100%'>":
        echo "<tr>";
        echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Varenummer</font></td>";
        echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Navn</font></td>";
        echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Pris</font></td>";
        echo "</tr>";

        while ($row = mysql_fetch_array($result)){
            echo "<tr>";
            echo "<td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>$row[varenummer]</font></td>";
            echo "<td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>$row[varenavn]</font></td>";
            echo "<td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>$row[pris]</font></td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "Du skal indtaste mindst 2 tegn i søgefeltet";
    }
} else {
?>
</center>
</div>
<form method=post action=tekst_soeg1.php target="hovedramme" onsubmit="parent.indhold0.location.href = 'blank.htm'; return true;">
<input type=text name=tekst_soeg1>
<input type=submit value=søg>
</form>
<?php
}
?>
</body>
</html>
Avatar billede daft Nybegynder
07. december 2004 - 12:06 #4
Mange tak, nu virker det.
Undskyld, at det tog et stykke tid, men jeg havde problemer med at uploade filen.
Hvordan med pointene? Begge jeres svar virker jo. Har I noget imod at dele?
Daft
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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