webForumDet fria alternativet

Enkel sökfunkt

9 svar · 435 visningar · startad av Emil W

Emil WMedlem sedan mars 2009512 inlägg
#1

Hej alla har problem med min sök funktion

så ser sql_query ut

SELECT rubrik FROM *************** WHERE rubrik LIKE '%'

jag får detta fel meddelande

Notice: Undefined variable: sok in C:\wamp\www\emilsbilcommunity\sokkolla.php on line 11

<?php 

//Gjord av Emil Wiklund

$con = @mysql_connect("*********","*********","***********");
if(!$con)
{
die('Databasfel' . mysql_error());
}

mysql_select_db("**************", $con);

$result = mysql_query("SELECT ********** FROM ******* WHERE rubrik LIKE '%$sok%'") or die (mysql_error());

$sok = $_GET['sok'];

while($row = mysql_fetch_array($result))
{
echo $row['rubrik'];
}
mysql_close($con);
?>

Här är formuläret

<form method="get" action="sokkolla.php">
<input type="text" name="sok"> <input type="submit" name="skicka" value="Sök">
</form>
nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Du tilldelar variabeln $sok efter att du försöker anropa databasen...
Sen en allmän kommentar, du bör alltid escape'a indata som ska användas i ett databas-anrop! (Om du inte vill att någon ska komma åt att tömma databasen eller hitta på något annat lurt.)

$sok = mysql_real_escape_string($_GET['sok']);

$result = mysql_query("SELECT ********** FROM ******* WHERE rubrik LIKE '%$sok%'") or die (mysql_error());
Emil WMedlem sedan mars 2009512 inlägg
#3

Jag får fortfarande fel

Notice: Undefined variable: sok in C:\wamp\www\emilsbilcommunity\sokkolla.php on line 11

SELECT rubrik FROM ************* WHERE rubrik LIKE '%%'

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

Har du fyllt i något i rutan? Pröva att skriva ut $sok och $_GET['sok'] med echo och se vad som händer.

Emil WMedlem sedan mars 2009512 inlägg
#5

Han skriver ut det man skrivit i fältet

nitro2k01Medlem sedan aug. 20039 342 inlägg
#6

Prova

$result = mysql_query("SELECT ********** FROM ******* WHERE rubrik LIKE '%".$sok,"%'") or die (mysql_error());

Om det inte funkar, posta hela koden som den ser ut då.

Emil WMedlem sedan mars 2009512 inlägg
#7

Jag får dessa fel meddelanden

Notice: Undefined variable: sok in C:\wamp\www\emilsbilcommunity\sokkolla.php on line 11

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\emilsbilcommunity\sokkolla.php on line 11

<?php 

//Gjord av Emil Wiklund
$con = @mysql_connect("*********","********","***********");
if(!$con)
{
die('Databasfel' . mysql_error());
}

mysql_select_db("***********", $con);

$result = mysql_query("SELECT rubrik FROM sokrecept WHERE rubrik LIKE '%".$sok,"%'") or die (mysql_error());

$sok = mysql_real_escape_string($_GET['sok']);

while($row = mysql_fetch_array($result))
{
echo $row['sok'];
}
mysql_close($con);
?>
nitro2k01Medlem sedan aug. 20039 342 inlägg
#8

Meeen... Du har ju fortfarande "$sok = ..." på raden under mysql_query. Flytta upp den raden så att den hamnar ovanför mysql_query-raden! Du försöker använda variabeln innan du har skapat den.

Emil WMedlem sedan mars 2009512 inlägg
#9

Nu funkar den men hur gör jag så att den kollar typ att man måste skriva pannkakor för att den ska hitta så att han inte hittar om man skriver p

The_HulkMedlem sedan juni 20031 837 inlägg
#10

vill du bara hitta exakt det man söker på?

$result = mysql_query("SELECT rubrik FROM sokrecept WHERE rubrik ='."$sok,"'") or die (mysql_error());

Eller vi du bara hitta hela ord i rubriken?
I så fall kanske det är bäst att skapa en index-tabell för sökningen då du splittar upp rubriken i hela ord och sparar varje ord som en egen post.
Så har de i alla fall gjort i phpbb.

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)