Hej!
Jag håller på med att skapa en enklare sökmotor för att kunna söka i min mysql databas. Jag använder 5 st checkboxar för att välja vilken kolumn i databasen som skall avsökas. Förutom dessa checkboxar använder jag även ett textfält för själva söksträngen. Så långt verkar allt fungera, dvs när jag echo:ar ut det jag inhämtat via POST från sökformuläret får jag ut rätt värden från dessa variabler.
Problemet kommer i själva queryn:
$results=mysql_query("SELECT * FROM kontaktinfo WHERE '$phrase'='$search'") or die("MYSQL ERROR: ".mysql_error());
Variabeln $phrase innehåller värdet av checkbox-valet och syftar alltså till att ange viken kolumn som skall genomsökas. Den andra variabeln $search, innehåller textsträngen från sökformet. Jag får inget felmeddelande på ovanstående kod, men likväl fungerar inte sökningen som den skall. Sökningen resulterar i noll träffar. Om jag i stället byter ut variabeln $phrase mot ett faktiskt kolumnnamn i den aktuella tabellen, fungerar sökningen som den skall. Problemet ligger rimligen i användningen av variabler på det sätt jag gjort. Är det någon som ser vad som är fel? I så fall, är jag oerhört tacksam för all hjälp.
MVH
Tobbe, Gbg
LarsGMedlem sedan dec. 200012 464 inlägg $results=mysql_query("SELECT * FROM kontaktinfo WHERE $phrase = '$search'") or die("MYSQL ERROR: ".mysql_error());
tyvärr fungerade inte heller
Med den föreslagna koden:
$results=mysql_query("SELECT * FROM kontaktinfo WHERE $phrase = '$search'") or die("MYSQL ERROR: ".mysql_error());
Får jag nu följande felmeddelande:
MYSQL ERROR: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '= ''' at line 1
Knepigt. Fler förslag?
MVH
Tobbe, gbg
LarsGMedlem sedan dec. 200012 464 inlägg Då ser det ut som om variabeln $phrase inte har något värde. Du kan ju lägga till en utskrift av strängen för att se vad du skickar till databashaneteraren.
$q = "SELECT * FROM kontaktinfo WHERE " . $phrase .
" = '" . $search . "'";
$results=mysql_query($q) or
die("MYSQL ERROR: ".mysql_error() . " at " . $q);
variabeln var tom
Helt sant Lars,
din första kod löste egentligen problemet, det var bara jag som inte lagt in något villkor för att starta sökningen, därav startade sökningen innan variabeln blivit tilldelad och därav felmeddelandet.
Tack å bockar för din assistans!
MVH
Tobbe
SnakesMedlem sedan okt. 2004392 inlägg Detta är lite onödigt, jag vet, men:
Markera tråden som löst är du snäll!
Hur? På nedre högra hörna så finns det en "Accepetera som slutgiltligt svar" på alla inlägg. Leta upp inlägget som löste ditt problem och klicka på länken!