Avatar billede prodigy01 Nybegynder
19. maj 2008 - 01:20 Der er 24 kommentarer

Søge funktion med flere muligheder

Kan i hjælpe mig med, at jeg gerne vil have at den skal søge under den kategori man vælger
Hvis man vælger Billeder, så søger den under billeder. Osv

- http://www.eksperten.dk/spm/830685
Avatar billede Slettet bruger
19. maj 2008 - 06:20 #1
Jep det kan jeg godt hjælpe dig med, men for en god ordens skyld så vær sød lige at poste dit nuværende script(din kode til databasen skal du self huske at fjerne).
Avatar billede Slettet bruger
21. maj 2008 - 11:17 #2
kuk kuk
Avatar billede prodigy01 Nybegynder
21. maj 2008 - 21:22 #3
<table id="AutoNumber1" cellspacing="1" cellpadding="0" width="100%" border="0">
  <tbody>
    <tr>
      <?php
include("database.php");
$kategori = $_GET["valg"];
$hent = mysql_query("SELECT * FROM billeder WHERE kategori = '$kategori' ORDER BY id DESC LIMIT 0,5");
while($vis = mysql_fetch_array($hent)) {
?>
      <td align="middle" width="500"><hr color="#006699" size="1"/></td>
      <?

  }
?>
    </tr>
    <tr>
      <td align="middle"><form action="?side=sog" method="post" onSubmit="return this.sSearch.value!=''">
        <div align="center"><font color="#03679B" size="1" face="Verdana"><br />
          Tekst/Ord:</font>
              <input type="text" name="sSearch" style="background-color: #FFFFFF; font-size: 12; color: #03679B; border: 1px solid #03679B;" />
              <input type="submit" name="search" value="S&oslash;g" style="background-color: #FFFFFF; font-size: 12; color: #03679B; border: 1px solid #03679B;" />
        </div>
      </form></td>
    </tr>
    <tr>
      <td align="middle"><hr color="#006699" size="1"/></td>
    </tr>
  </tbody>
</table>
<p>
  <?php
if(isset($_POST['sSearch']) && $_POST['sSearch'] != ''){
    include("database.php");
    $search = mysql_escape_string($_POST['sSearch']);
    $query = mysql_query("SELECT * FROM spil WHERE navn LIKE '%".$search."%' OR beskrivelse LIKE '%".$search."%' OR kategori LIKE '%".$search."%'");
    if(mysql_num_rows($query) > 0){
        //Vi fandt noget...
        while($row = mysql_fetch_array($query)){
        print "<a href=\"play.php?id=".$row['id']."\" target=\"_blank\">".$row['navn']."</a><br>";
        }
    }else{
        //Vi fandt ikke noget...
        echo "Der er desværre ingen resultater på: " . $search . " i vores database, prøv igen!";
    }
}
?>

_____________
Og så vil jeg gerne have denne dropdown til at vælge hvad den skal søge efter:


          <select name="liste" style="background-color: #FFFFFF; color: #03679B; border: 1px solid #03679B;">
            <option value="spil" selected>Spil</option>
            <option value="billeder">Billeder</option>
            <option value="jokes">Jokes</option>
            <option value="video">Video</option>
          </select>
Avatar billede Slettet bruger
22. maj 2008 - 08:38 #4
Hvor får den $kategori fra?
Som du bruger i $hent?
Avatar billede Slettet bruger
22. maj 2008 - 08:38 #5
Ja smart, kan godt se hvor den for $kategori fra.
Bare glem mit tidligere indlæg.
Avatar billede Slettet bruger
22. maj 2008 - 08:40 #6
Så skal du jo bare ændre din query til at søge efter $search i kategori = med den valgte som her:

$query = mysql_query("SELECT * FROM spil WHERE navn LIKE '%".$search."%' OR beskrivelse LIKE '%".$search."%' AND kategori LIKE '".$_POST['liste']."'");

Er det det du søgte?
Avatar billede prodigy01 Nybegynder
22. maj 2008 - 14:30 #7
Det jo ikke det.
Kan man ik gøre f.eks: SELECT * FROM $liste WHERE .. osv.
den skal hente ud fra det man vælger, hvis du forstår.
Avatar billede w13 Novice
22. maj 2008 - 14:32 #8
Jo? :)
Avatar billede prodigy01 Nybegynder
22. maj 2008 - 14:42 #9
har prøvet sådan her, men virker ikke, den kan kun søge under spil.

    $liste = $_POST['liste'];
    $query = mysql_query("SELECT * FROM $liste
Avatar billede w13 Novice
22. maj 2008 - 14:47 #10
"Virker ikke"? Det er et ret vidt begreb.

Har du fået indsat din <select name="liste"...>?

I stedet for:

$query = mysql_query("SELECT * FROM spil ...

så prøv:

$query = mysql_query("SELECT * FROM ".$liste." ...
Avatar billede prodigy01 Nybegynder
22. maj 2008 - 15:01 #11
Det er da ikke et ret vidt begreb.
Jeg hentydede jo til det jeg prøvede at få til at virke.
Men ja har indsat min select.

Og det "dur" ikke ? .
Kun når jeg søger under spil.

Men:
Kan det være pga, der ikke er $beskrivelse under billeder i databasen - men der er dog "$navn".
Avatar billede w13 Novice
22. maj 2008 - 15:09 #12
Det kommer an på, hvordan det ikke virker, som jeg hentydede til før. Er der overhovedet ingen effekt? Eller giver den en fejlmeddelelse? Eller er der andet, der sker, når du prøver at søge under andet end spil?

Hvis jeg har forstået dig ret, at der ikke er et felt, der hedder $beskrivelse, i tabellen "billeder", så vil det resultere i en fejlmeddelelse ja, men kun hvis man har slået fejlmeddelelser til, naturligvis. Og det er en meget god idé at gøre, når man udvikler sine hjemmesider.
Avatar billede prodigy01 Nybegynder
22. maj 2008 - 15:41 #13
Hvordan slår jeg det til?
Avatar billede prodigy01 Nybegynder
22. maj 2008 - 15:43 #14
men . den siger bare: Der er desværre ingen resultater på: hej i vores database, prøv igen!

prøv selv ude i siden,
http://www.bloddue.dk
Avatar billede w13 Novice
22. maj 2008 - 15:44 #15
Det kan jeg faktisk ikke huske. *indsæt pinlig smiley her*
Jeg er forholdsvis ny i PHP. Men det er vist noget med en config.ini-fil? Hmm. Det må der være nogle andre her, der lige ved.
Avatar billede w13 Novice
22. maj 2008 - 15:45 #16
Men det kommer der jo heller ikke, hvis jeg søger på "hej" under spil. Hvad skal jeg søge på under spil, for at der kommer noget frem.
Avatar billede w13 Novice
22. maj 2008 - 15:46 #17
*for at der kommer noget frem?
Avatar billede prodigy01 Nybegynder
22. maj 2008 - 15:52 #18
Nej nej , skrev bar hej herinde.. bar søg på "Ble" f.eks. under billeder.
Avatar billede prodigy01 Nybegynder
23. maj 2008 - 20:17 #19
?
Avatar billede w13 Novice
23. maj 2008 - 21:24 #20
Lige nu har jeg desværre ingen anelse. =(
Avatar billede prodigy01 Nybegynder
25. maj 2008 - 15:11 #21
:(
Avatar billede Slettet bruger
27. maj 2008 - 02:23 #22
Lad os lige teste lidt først:

Prøv ændre:

<?php
if(isset($_POST['sSearch']) && $_POST['sSearch'] != ''){
    include("database.php");
    $search = mysql_escape_string($_POST['sSearch']);
    $query = mysql_query("SELECT * FROM spil WHERE navn LIKE '%".$search."%' OR beskrivelse LIKE '%".$search."%' OR kategori LIKE '%".$search."%'");
    if(mysql_num_rows($query) > 0){
        //Vi fandt noget...
        while($row = mysql_fetch_array($query)){
        print "<a href=\"play.php?id=".$row['id']."\" target=\"_blank\">".$row['navn']."</a><br>";
        }
    }else{
        //Vi fandt ikke noget...
        echo "Der er desværre ingen resultater på: " . $search . " i vores database, prøv igen!";
    }
}
?>


->

<?php
if(isset($_POST['sSearch']) && $_POST['sSearch'] != ''){
    include("database.php");
    $search = mysql_escape_string($_POST['sSearch']);
    $query = mysql_query("SELECT * FROM spil WHERE navn LIKE '%".$search."%' OR beskrivelse LIKE '%".$search."%' OR kategori LIKE '%".$search."%'");
    echo "<br />Antal søgniner: <b>".mysql_num_rows($query) ."</b>";;
}
?>


så kan vi da lige se om den fanger nogen.
Avatar billede Slettet bruger
27. maj 2008 - 02:33 #23
Nej inde du gør dette overstående laver vi lige en lidt større test.
Ændre det til ->


<?php
if(isset($_POST['sSearch']) && $_POST['sSearch'] != ''){
    include("database.php");
    $search = mysql_escape_string($_POST['sSearch']);
    $sql = "SELECT * FROM ".$liste." WHERE navn LIKE '%".$search."%' OR beskrivelse LIKE '%".$search."%' OR kategori LIKE '%".$search."%'";
    $query = mysql_query($sql);
    $arr = array();
    $arr[] = array("Soegning" => $search, "Antal_Fundet" => mysql_num_rows($query), "Soegnings_Liste" => $liste, "SQL Streng" => $sql);
    print "<br /><br /><br /><br /><br />\n<pre style=\"margin-left: 30px; padding: 5px; width: 600px; border: 2px dotted #000000;\">\n";
    print_r($arr);
    print "\n</pre>";
}
?>
Avatar billede prodigy01 Nybegynder
11. november 2008 - 22:03 #24
smid svar.. sorry tiden =)
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