webForumDet fria alternativet

två variabler i myslq query

5 svar · 247 visningar · startad av t_da_bee

t_da_beeMedlem sedan jan. 20056 inlägg
#1

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
#2
$results=mysql_query("SELECT * FROM kontaktinfo WHERE $phrase = '$search'") or die("MYSQL ERROR: ".mysql_error());
t_da_beeMedlem sedan jan. 20056 inlägg
#3

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
#4

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);
t_da_beeMedlem sedan jan. 20056 inlägg
#5

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
#6

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.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)