19. december 2010 - 14:19
Der er
5 kommentarer og 1 løsning
Problemer med at vælge data fra ID felt, hvad gør jeg forkert?
Hej alle... Jeg har et simpelt php script der skal finde en række i en MySQL database baseret på en variabel kaldet '$term'. Det ser sådan her ud: ------ $result = mysql_query("SELECT * FROM data"); while ($row = mysql_fetch_array($result)) { $data[] = $row[0]; $kw[] = $row['kw']; $id[] = $row['id']; $url[] = $row['redurl']; } foreach ($kw as $num=>$kw) { if (stristr($term, $kw)) { $dbid = $num + 1; } } ----- Mit problem er, at hvis jeg ikke tilføjer den nederste 'kommando' ($dbid = $num + 1;), så vælger den altid den række i databasen der står nedenuder. Så hvis den række der har et match, er ID 3, så ville den vælge række 2. Hvordan før jeg den til at 'standse' på den rigtige række. Som I kan se bruger jeg 'stristr' til at søge med... Håber I kan hjælpe.
Annonceindlæg fra SoftwareOne
19. december 2010 - 18:58
#4
Arne>> Ignorer det ovenstående indlæg :) Grunden til at jeg ikke bruger WHERE i ovenstående eksempel er at jeg skal matche en sætning op imod databasen. F.eks.: --- $result = mysql_query("SELECT * FROM example WHERE kw='$kw'"); --- I min DB 'example' er kw 'fødselsdag' men den $kw er 'idag er det min fødselsdag'. Så, så vidt jeg har forstået kan jeg ikke bruge en where, ordene ikke matcher 100%. Det skal lige siges at jeg er ret grøn når det kommer til php, så måske er der noget jeg har misforstået :)
19. december 2010 - 21:33
#5
Arne>> Selvom du aldrig svarede på mit andet spørgsmål, så fandt jeg en løsning alligevel. Jeg læste noget mere om WHERE statements, og det ender med at se sådan her ud: $result = mysql_query("SELECT * FROM data WHERE MATCH (kw) AGAINST ('{$term}' IN BOOLEAN MODE)"); Det er jo smukt :) Smid lige et svar, så sender jeg nogle points din vej...!