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.
$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
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);
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.
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!
129 ms totalt · 3 externa anrop · v20260731065814-full.b746b907