dr_damirMedlem sedan mars 2003130 inlägg
Tjena allihopa!
Jag sitter här och klurar på min sql fråga som jag senare ska beräkna hur många poster som hittades.
Så här ser sql-frågan ut:
$sql = "SELECT * FROM tabell
WHERE MATCH(namn,extra,kategori) AGAINST(+$var) IN BOOLEAN MODE ORDER by namn ASC";
orden innanför AGAINST har genererats tidigare i en loop.
ex. *malin*' +'*konny*'
Först när jag ska räkna posterna klagas det.
Jag tänkte först såhär:
mysql_result(mysql_query("select count(*) from tabell
WHERE MATCH(namn,extra,kategori) AGAINST(+$var) IN BOOLEAN MODE"), 0, 0)
Där klagar den:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource
Så, jag tänkte jag skulle testa en annan mysql-funktion. Nämligen mysql_field_count() . Men då får jag felmeddelandet att den funktionen inte finns.
Någon som kan hjälpa mig för nu vet jag inte hur jag ska tänka.
tack!
LarsGMedlem sedan dec. 200012 465 inlägg
Får du något felmeddelande?
mysql_query("select count(*) from tabell
WHERE MATCH(namn,extra,kategori) AGAINST(+$var) IN BOOLEAN MODE") or die(mysql_error());
dr_damirMedlem sedan mars 2003130 inlägg
Nä, på den raden får jag inga felmeddelanden.
Men inte heller får jag några resultat ur min databas trots att jag vet att jag söker på saker jag vet finns.
LarsGMedlem sedan dec. 200012 465 inlägg
Det fel du får beror ju på att mysql_query returnerar 0. Generellt om du vill hämta värden så är det bättre att använda t.ex. mysql_fetch_row än mysql_result
$c = mysql_query("select count(*) from tabell
WHERE MATCH(namn,extra,kategori) AGAINST(+$var) IN BOOLEAN MODE") or die(mysql_error());
$r = mysql_fetch_row($c);
$rows = $r[0];
dr_damirMedlem sedan mars 2003130 inlägg
mysql_fetch_row(mysql_query("select count(*)
from tabell WHERE MATCH(namn,extra,kategori)
AGAINST(+$var) IN BOOLEAN MODE"
or die(mysql_error())));
Denna ger mig felet:
mysql_fetch_row(): supplied argument is not a valid MySQL result resource
Men, hur kan mysql_query ge mig ett värde på 0?
jag vet ju att de ord jag söker finns i min databas!
är det fel på min fråga?
dr_damirMedlem sedan mars 2003130 inlägg
tillägg:
Om jag använder mig utav mysql_result() för att få fram resultatet från min fråga så ger den mig felet:
Wrong parameter count for mysql_result()
LarsGMedlem sedan dec. 200012 465 inlägg
Dina parenteser är fel. Varför försöker du slå ihop allt till en rad? Det är mycket enklare att se om du skriver varje anrop för sig.
dr_damirMedlem sedan mars 2003130 inlägg
Tack Lars!
Det var en del missar men nu funkar det mesta.
En fråga, jag sätter en * för att söka på mer än bara just ordet i sökningen. Men så testade jag med *a* eller bara **. Då hittar den ingenting alls. varför? går det inte att ha * både bakom och framför sökordet?
dr_damirMedlem sedan mars 2003130 inlägg
tjenna!
igen, ingen som vet det...hur man gör en sökning "vadsom helst" med match against?
i vanliga selectfrågor har jag för mig man använder % för att får fram vad som helst men i match...against använder man väl *?
Men det fungerar inte att skriva ex. *a* för då hittas bara saker som börjar på a. inte saker som 'bara' innnehåller a.