Avatar billede funny Nybegynder
27. april 2005 - 17:07 Der er 41 kommentarer og
1 løsning

Lille Søge Script.

Er der en der kunne hjælpe mig med at lave en kode så man på min side kan søge i min sql efter et fil.
Avatar billede jakobdo Ekspert
27. april 2005 - 17:16 #1
Det skulle jeg da godt kunne hjælpe dig med!
Men fortæl lidt mere om hvad du har og hvad du ønsker!
Avatar billede funny Nybegynder
30. april 2005 - 19:26 #2
det jeg søger er at man på min side kan søge efter nogen filer (Driver) hvor teksten ligger i min sql samt link når man har søgt efter en driver som ligger i min sql skal den vise den som noget tekst om selve filen samt link til den
Avatar billede funny Nybegynder
30. april 2005 - 19:31 #3
vil godt give fler point for det.
Avatar billede jakobdo Ekspert
30. april 2005 - 21:08 #4
Point er ikke noget!
Nu ved jeg ikke hvor meget html, php og sql du kender til i forvejen!

Men du skal lave en form.
f.eks.:

echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n";
echo "<input type=\"text\" name=\"sSearch\">\n";
echo "<input type=\"submit\" name=\"search\" value=\"Søg\">\n";
echo "</form>\n";

Og på samme side, eller en anden, laver du så noget i stil med:

$query = mysql_query("SELECT * FROM driver WHERE felt LIKE ".$sSearch." ORDER BY dato");

og så viser resultatet.
Du kan søge på mange felter.
Du kan også lave siden, så man f.eks. kan lave:

search.php?sSearch=nvidia
og så viser den resultater med nvidia drivere.

Men fortæl mig lidt om hvad du selv kan, og hvad du mere præcist ønsker.
Det kommer jo også meget an på hvordan din database struktur er.
Og hvad der skal vises og mange andre ting.
Avatar billede funny Nybegynder
02. maj 2005 - 16:15 #5
jeg har prøvet at sætte det sådan op er det godt nok

<?php
include('db.php');
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n";
echo "<input type=\"text\" name=\"sSearch\">\n";
echo "<input type=\"submit\" name=\"search\" value=\"Søg\">\n";
echo "</form>\n";
?>
<?php
include('db.php');
$query = mysql_query("SELECT * FROM driver WHERE felt LIKE ".$sSearch." ORDER BY dato");
?>
Avatar billede funny Nybegynder
02. maj 2005 - 16:18 #6
i selve sqlen vad skal jeg smide i der af felter (driver? name? dato? text?)
Avatar billede jakobdo Ekspert
02. maj 2005 - 16:22 #7
Sql'en afhænger jo af hvad du vil finde.
Hvad dine felter hedder i din database.
Din form er ikke helt korrekt.
Prøv denne:

<?php
include('db.php');
if(isset($_POST['']))
{
    echo "Vi skal finde: <b>" . $_POST['sSearch'] . "</b><br>";
}
else
{
    echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n";
    echo "<input type=\"text\" name=\"sSearch\">\n";
    echo "<input type=\"submit\" name=\"search\" value=\"Søg\">\n";
    echo "</form>\n";
}
?>
Avatar billede funny Nybegynder
02. maj 2005 - 16:36 #8
hvordan skal sqlen se ud til den du har lavet
Avatar billede funny Nybegynder
02. maj 2005 - 16:44 #9
Jeg har lavet en tabel med navnet driver
Avatar billede jakobdo Ekspert
02. maj 2005 - 16:52 #10
Prøv at giv mig felt navnene i din tabel driver!
Avatar billede funny Nybegynder
02. maj 2005 - 16:54 #11
jeg har ikke lavet nogen i nu men jeg kan da lige skrive hvad jeg kunne bruge i den

type
navn
tekst
link
Avatar billede funny Nybegynder
02. maj 2005 - 16:59 #12
CREATE TABLE `driver` (
  `type` text NOT NULL,
  `navn` text NOT NULL,
  `tekst` text NOT NULL,
  `link` text NOT NULL
) TYPE=MyISAM;
Avatar billede funny Nybegynder
02. maj 2005 - 16:59 #13
men hvordan skal selve søge koden finde dem
Avatar billede jakobdo Ekspert
02. maj 2005 - 17:04 #14
Prøv denne:

<?php

if(isset($_POST['']))
{
    include("db.php");
    $search = mysql_escape_string($_POST['sSearch']);
    $query = mysql_query("SELECT * FROM driver WHERE navn LIKE '".$search."' OR tekst LIKE '".$search."'");
    if(mysql_num_rows($query) > 0)
    {
        //Vi fandt noget...
        while ($row = mysql_fetch_assoc($result))
        {
            echo $row['type'] . " - " . $row['navn'] . " - " . $row['tekst'] . " - " . $row['link'] . "<br>";
        }
    }
    else
    {
        //Vi fandt ikke noget...
        echo "Vi fandt desværre ikke: " . $search . " i vores database, prøv igen!";
    }
}

echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n";
echo "<input type=\"text\" name=\"sSearch\">\n";
echo "<input type=\"submit\" name=\"search\" value=\"Søg\">\n";
echo "</form>\n";

?>
Avatar billede funny Nybegynder
02. maj 2005 - 17:13 #15
den du lavet der kan jeg ikke få til at virke når jeg søger efter noget viser den ikke noget øv øv
Avatar billede jakobdo Ekspert
02. maj 2005 - 17:15 #16
Hvis du ikke har noget i din database, så vil den ikke vise noget!
Har du noget i din database?
Avatar billede jakobdo Ekspert
02. maj 2005 - 17:16 #17
Mindre fejl... (ups)

<?php

if(isset($_POST['search']))
{
    include("db.php");
    $search = mysql_escape_string($_POST['sSearch']);
    $query = mysql_query("SELECT * FROM driver WHERE navn LIKE '".$search."' OR tekst LIKE '".$search."'");
    if(mysql_num_rows($query) > 0)
    {
        //Vi fandt noget...
        while ($row = mysql_fetch_assoc($result))
        {
            echo $row['type'] . " - " . $row['navn'] . " - " . $row['tekst'] . " - " . $row['link'] . "<br>";
        }
    }
    else
    {
        //Vi fandt ikke noget...
        echo "Vi fandt desværre ikke: " . $search . " i vores database, prøv igen!";
    }
}

echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n";
echo "<input type=\"text\" name=\"sSearch\">\n";
echo "<input type=\"submit\" name=\"search\" value=\"Søg\">\n";
echo "</form>\n";

?>
Avatar billede funny Nybegynder
02. maj 2005 - 20:10 #18
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in

i den her  while ($row = mysql_fetch_assoc($result))
Avatar billede funny Nybegynder
02. maj 2005 - 20:12 #19
jeg har smidt lidt data ind i sqlen men når jeg søger kommer der ikke noget
Avatar billede funny Nybegynder
02. maj 2005 - 20:53 #20
den vil godt vise vi fandt ikke noget
Avatar billede funny Nybegynder
02. maj 2005 - 20:57 #21
er der nogen der kan hjælpe
Avatar billede funny Nybegynder
02. maj 2005 - 21:14 #22
fandt fejlen lavet den om til while($row = mysql_fetch_array($query))
Avatar billede funny Nybegynder
02. maj 2005 - 21:18 #23
men den vil kun´søge i et Feltnavn
Avatar billede funny Nybegynder
02. maj 2005 - 21:22 #24
nu ser den sådan ud

<?php
if(isset($_POST['search']))
{
    include("db.php");
    $search = mysql_escape_string($_POST['sSearch']);
    $query = mysql_query("SELECT * FROM driver WHERE navn LIKE '".$search."' OR tekst LIKE '".$search."'");
    if(mysql_num_rows($query) > 0)
    {
        //Vi fandt noget...
        while($row = mysql_fetch_array($query))
        {
            echo $row['type'] . " - " . $row['navn'] . " - " . $row['tekst'] . " - " . $row['link'] . "<br>";
        }
    }
    else
    {
        //Vi fandt ikke noget...
        echo "Vi fandt desværre ikke: " . $search . " i vores database, prøv igen!";
    }
}

echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n";
echo "<input type=\"text\" name=\"sSearch\">\n";
echo "<input type=\"submit\" name=\"search\" value=\"Søg\">\n";
echo "</form>\n";

?>
Avatar billede funny Nybegynder
02. maj 2005 - 22:01 #25
er der nogen der kan sige mig fejlen
Avatar billede funny Nybegynder
02. maj 2005 - 22:07 #26
smider lige 50 point mere på
Avatar billede jakobdo Ekspert
03. maj 2005 - 08:01 #27
Har du evt et link til din side?
Så jeg kan se output?
Avatar billede funny Nybegynder
05. maj 2005 - 18:12 #28
min fejl nu kan jeg men kan du hjælpe mig en siste gang med at få den til at søge under alle navne (type navn tekst link) samt vis du kan vise mig hvordan jeg kan få dem til at se sådan ud

som de er nu type - navn - tekst - link

Vis de kan komme sådan ud

type
navn
tekst
link
Avatar billede funny Nybegynder
05. maj 2005 - 18:21 #29
samt lige en ting til kan man lave så den også kan søge noget af teksten lige nu som den er skal man skrive lige det som er i sqlen
Avatar billede funny Nybegynder
05. maj 2005 - 19:34 #30
p.s hvordan få du den til at smide den ud som et link echo  $row['link'] . "<br>";
Avatar billede jakobdo Ekspert
05. maj 2005 - 22:09 #31
For at søge i alle 4 felter, kan du rette linien:

$query = mysql_query("SELECT * FROM driver WHERE navn LIKE '".$search."' OR tekst LIKE '".$search."'");

til:

$query = mysql_query("SELECT * FROM driver WHERE type LIKE '".$search."' OR navn LIKE '".$search."' OR tekst LIKE '".$search."' OR link LIKE '".$search."'");

For at få dem listet på nye linier, så ret:

echo $row['type'] . " - " . $row['navn'] . " - " . $row['tekst'] . " - " . $row['link'] . "<br>";

til:

echo $row['type'] . "<br>";
echo $row['navn'] . "<br>";
echo $row['tekst'] . "<br>";
echo $row['link'] . "<br>";

og for at få link som et link så ret:

echo $row['link'] . "<br>";

til:

echo "<a href=\"" . $row['link'] . "\">". $row['link'] ."</a><br>";

Håber det var nok forklaring!
Avatar billede funny Nybegynder
15. maj 2005 - 12:16 #32
kanon laver du et svar så skal du få point
Avatar billede funny Nybegynder
15. maj 2005 - 12:21 #33
der er lige en siste ting hvordan kan man få den til at søge noget af teksten
Avatar billede jakobdo Ekspert
15. maj 2005 - 19:25 #34
For at søge noget at teksten, så skal du ændre:
$query = mysql_query("SELECT * FROM driver WHERE type LIKE '".$search."' OR navn LIKE '".$search."' OR tekst LIKE '".$search."' OR link LIKE '".$search."'");

til:

$query = mysql_query("SELECT * FROM driver WHERE type LIKE '%".$search."%' OR navn LIKE '%".$search."%' OR tekst LIKE '%".$search."%' OR link LIKE '%".$search."%'");

Og du kunne evt udbygge din søge funktion, så den som søger kan vælge hvad han vil søge på.
F.eks en dropdown med følgende værdier:
type, navn, tekst, link og alle felter.

PS bare et forslag og her et svar.
Avatar billede funny Nybegynder
16. maj 2005 - 15:11 #35
når man skriver noget i søge boxen og bare taster enter søger den ikke man skal klikke på søge knappen hvad kan det være
Avatar billede jakobdo Ekspert
16. maj 2005 - 15:16 #36
Prøv at ret: if(isset($_POST['search']))
til: if(isset($_POST['sSearch']))
Avatar billede funny Nybegynder
16. maj 2005 - 15:29 #37
yep der var den thx kan du sige mig en siste ting hvordan kan jeg lave et linjeskift når den viser det

1
2
3
4
1
2
3
4
Avatar billede jakobdo Ekspert
16. maj 2005 - 16:01 #38
Hvad mener du?
Avatar billede funny Nybegynder
16. maj 2005 - 16:30 #39
når man har søgt og fundet to ting i sqlen kommer det ud sådan her 1
2
3
4
1
2
3
4

men kan ikke få den til at vise den sådan her
1
2
3
4

1
2
3
4
Avatar billede jakobdo Ekspert
16. maj 2005 - 16:41 #40
Du kan jo efter $row['link'] sætte en ekstra <br> eller evt en <hr>
Avatar billede funny Nybegynder
16. maj 2005 - 17:09 #41
kanon thx
Avatar billede jakobdo Ekspert
16. maj 2005 - 20:39 #42
Det var så lidt!
Og tak for point forresten!
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