Avatar billede jacksleo Nybegynder
17. august 2003 - 22:37 Der er 19 kommentarer og
1 løsning

Søgefunktion som søger på flere ord

Har en søgefunktion hvor jeg gerne vil have den søger på alle ord der bliver skrevet. For at få scriptet til dette vil jeg skifte mellemrum ud med AND
Men det virker ikke rigtig

<?

include ('include.inc.php');

$nr = 1;
$search = str_replace(" "," AND ",$search);

$db= mysql_connect($DBhost,$DBuser,$DBpass);

mysql_select_db("123",$db);

$foresp = mysql_query("SELECT pnavn, link, firma FROM produkt WHERE keywords LIKE '%$search%' AND godkendt='1'");

while ($data = mysql_fetch_row($foresp)){

$pnavn = urlencode(utf8_encode($data[0]));
$link = urlencode(utf8_encode($data[1]));
$firma = urlencode(utf8_encode($data[2]));


echo "&pnavn$nr=$pnavn";
echo "&link$nr=$link";
echo "&firma$nr=$firma";

$nr = $nr + 1;
}

?>
Avatar billede jacksleo Nybegynder
18. august 2003 - 00:16 #1
er kommet frem til at det skal være noget i retning af
$search = str_replace(" ","%' AND '%",$search);
men det virker heller ikke lige
Avatar billede detox Nybegynder
18. august 2003 - 09:14 #2
Prøv med:

<?
include ('include.inc.php');
$nr = 1;

$sql = "SELECT pnavn, link, firma FROM produkt WHERE keywords LIKE '%";
$sql .= str_replace(" ", "%' AND keywords LIKE '%", $search) . "%' AND godkendt='1'";

$db= mysql_connect($DBhost,$DBuser,$DBpass);

mysql_select_db("123",$db);

$foresp = mysql_query($sql) or die(mysql_error());

while ($data = mysql_fetch_row($foresp)){

$pnavn = urlencode(utf8_encode($data[0]));
$link = urlencode(utf8_encode($data[1]));
$firma = urlencode(utf8_encode($data[2]));

echo "&pnavn$nr=$pnavn";
echo "&link$nr=$link";
echo "&firma$nr=$firma";

$nr = $nr + 1;
}
?>
Avatar billede jacksleo Nybegynder
18. august 2003 - 22:16 #3
nææh den vil hellere ikke noget
Avatar billede detox Nybegynder
18. august 2003 - 22:34 #4
Kunne du uddybe det lidt, hvad sker der? Du er med på at alle søgeordene SKAL forekomme i keywords feltet, før den returnerer noget.
Avatar billede detox Nybegynder
18. august 2003 - 22:35 #5
Hvor kommer '$search' fra og indeholder den noget?
Avatar billede jacksleo Nybegynder
18. august 2003 - 22:43 #6
Har prøvet at køre følgende:

123.php?search=epson%20scanner

med følgende indhold i 123.php:

<?

include ('include.inc.php');

$nr = 1;
$search = str_replace(" ","%' AND '%",$search);
echo "$search";

$db= mysql_connect($DBhost,$DBuser,$DBpass);

mysql_select_db("123",$db);

$foresp = mysql_query("SELECT pnavn, link, firma FROM produkt WHERE keywords LIKE '%$search%' AND godkendt='1'");

while ($data = mysql_fetch_row($foresp)){

$pnavn = urlencode(utf8_encode($data[0]));
$link = urlencode(utf8_encode($data[1]));
$firma = urlencode(utf8_encode($data[2]));


echo "&pnavn$nr=$pnavn";
echo "&link$nr=$link";
echo "&firma$nr=$firma";

$nr = $nr + 1;
}

?>


Dette giver dette:

epson%' AND '%scanner

men ikke nogen hits fra databasen selvom den eksistere.

Virker lidt som om at den ikke sætter

epson%' AND '%scanner

ind i '%$search%' så at det giver '%epson%' AND '%scanner%'
Avatar billede buch78 Novice
18. august 2003 - 22:44 #7
jeg har lavet dette... men jeg kunne godt tænke mig at få det skrevet ud i en text boks. og så kunne ændre/gemme det


<B><I>Hvis du mangler et udenlask post nummer skrives 0 og søg</I></B>
<form method="POST" action="sog.php">
Søg Postnr: <input type="text" name="postnr" size="10">
<input type="submit" value="Søg">
<br>
<br>
<TABLE>
<tr><table border=1 width=500 cellspacing=1>
    <td width=80 ><B>Post nr</B></TD>
    <td width=240><B>By</B></TD>
    <td width=10 ><B>Land</B></TD>
</TR>
</TABLE>
<?
$db = mysql_connect("localhost","","") or die ("Could not connect to MySQL");
mysql_select_db("projekt");
$user =($_POST['postnr']);
$re = mysql_query("SELECT postnr, city, land FROM postnr
where postnr=$user");
echo "<table>";
while ($row = mysql_fetch_array($re)) {
echo "
<tr><table border=1 width=500 cellspacing=1>
  <td width=80> ".$row['postnr']."</td>
  <td width=240>".$row['city']."</td>
  <td width=10> ".$row['land']."</td>
</tr>";
}
echo "</table>";
mysql_close($db);
?>
Avatar billede buch78 Novice
18. august 2003 - 22:45 #8
undskyld jeg kom lige til at smide mit indlæg. i den forkerte spm
Avatar billede jacksleo Nybegynder
18. august 2003 - 22:45 #9
lul
Avatar billede detox Nybegynder
18. august 2003 - 22:51 #10
Det var jo heller ikke det jeg foreslog ;-)
Avatar billede detox Nybegynder
18. august 2003 - 22:55 #11
Prøv med:

<?
include ('include.inc.php');
$nr = 1;
$search = $_GET['search'];
$sql = "SELECT pnavn, link, firma FROM produkt WHERE keywords LIKE '%";
$sql .= str_replace(" ", "%' AND keywords LIKE '%", $search) . "%' AND godkendt='1'";

$db= mysql_connect($DBhost,$DBuser,$DBpass);

mysql_select_db("123",$db);

$foresp = mysql_query($sql) or die(mysql_error());

while ($data = mysql_fetch_row($foresp)){

$pnavn = urlencode(utf8_encode($data[0]));
$link = urlencode(utf8_encode($data[1]));
$firma = urlencode(utf8_encode($data[2]));

echo "&pnavn$nr=$pnavn";
echo "&link$nr=$link";
echo "&firma$nr=$firma";

$nr = $nr + 1;
}

?>
Avatar billede detox Nybegynder
18. august 2003 - 22:57 #12
Test:

<?
$search = $_GET['search'];
$sql = "SELECT pnavn, link, firma FROM produkt WHERE keywords LIKE '%";
$sql .= str_replace(" ", "%' AND keywords LIKE '%", $search) . "%' AND godkendt='1'";
print ($sql);
?>
Avatar billede jacksleo Nybegynder
18. august 2003 - 22:58 #13
den vil slet ikke noget...

lukker det her og prøver en helt anden løsning
Avatar billede jacksleo Nybegynder
18. august 2003 - 22:59 #14
smid et svar så får du pointne du har jo prøvet meget
Avatar billede detox Nybegynder
18. august 2003 - 23:05 #15
Ovenstående giver script giver query-streng:

SELECT pnavn, link, firma FROM produkt WHERE keywords LIKE '%epson%' AND keywords LIKE '%scanner%' AND godkendt='1'

Når man kalder det med: test2.php?search=epson%20scanner
Hvilket jo må siges at være en korrekt mysql query, så det må være noget andet der er galt!
Avatar billede detox Nybegynder
18. august 2003 - 23:06 #16
Måske der ikke skal være ' ' omkring godkendt='1'?
Avatar billede jacksleo Nybegynder
18. august 2003 - 23:15 #17
hmmm nu fatter jeg ikke noget....

men

<?
include ('include.inc.php');
$nr = 1;
$search = $_GET['search'];
$sql = "SELECT pnavn, link, firma FROM produkt WHERE keywords LIKE '%";
$sql .= str_replace(" ", "%' AND keywords LIKE '%", $search) . "%' AND godkendt='1'";

$db= mysql_connect($DBhost,$DBuser,$DBpass);

mysql_select_db("123",$db);

$foresp = mysql_query($sql) or die(mysql_error());

while ($data = mysql_fetch_row($foresp)){

$pnavn = urlencode(utf8_encode($data[0]));
$link = urlencode(utf8_encode($data[1]));
$firma = urlencode(utf8_encode($data[2]));

echo "&pnavn$nr=$pnavn";
echo "&link$nr=$link";
echo "&firma$nr=$firma";

$nr = $nr + 1;
}

?>

ser ud til at virke nu... tror serveren var fatsvag
Avatar billede detox Nybegynder
18. august 2003 - 23:17 #18
He he, så var det godt du ikke gav op!
Avatar billede jacksleo Nybegynder
18. august 2003 - 23:18 #19
syntes du skulle have lidt mere end 15
Avatar billede detox Nybegynder
18. august 2003 - 23:19 #20
Så siger jeg mange tak c",)
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