Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Slettet bruger
05. juli 2005 - 10:28#1
Skal vi bare gætte på den fejlmeddelelse?
Jeg vil tro, det er $resulat is not a valid mysql resource.
Hvis mit gæt er korrekt, så skal du prøve at få MySQL's egen fejlmeddelelse frem:
$resultat = mysql_query("SELECT * FROM GSProfil WHERE MATCH (CompanyName, Branche, AntalMedarb, AntalITUsers, AntalITMedarb, HardwareProfil, SoftwareProfil, NetworkProfil, SolutionProfil, Misc, HvorforMedlem) AGAINST ('$searchtext')") or die(mysql_error());
-------TEST 1Can't find FULLTEXT index matching the column list
Den påstår at den ikke kan finde TEST 1 som ellers står i kolonnen HardwareProfil... Hvorfor ikke?
Synes godt om
Slettet bruger
05. juli 2005 - 17:03#4
Den siger, at den ikke kan finde et FULLTEXT index, som passer til listen af kolonner. Det skal man have, for at kunne bruge MATCH ... AGAINST. Derudover kræves det, at din tabel er af typen MyISAM.
For at tilføje det index, kan du køre følgende kommando:
Men det kunne jeg ikke med den kommando du skrev før - så fik jeg en fejl! Hvordan kan jeg så gøre det? Og skal jeg fjerne index på de enkelte kolonner igen?
Synes godt om
Slettet bruger
07. juli 2005 - 15:45#11
Ja, du skal nok fjerne indexet på enkeltkolonnerne - med mindre du også ønsker at bruge fulltext-søgning på dem enkeltvis.
Har du prøvet den kommando, jeg gav i phpmyadmin eller kun fra et phpscript?
ja, nu har jeg prøvet den - og det så ud til at virke denne gang!
Jeg får bare ikke noget retur - selvom jeg ved den streng jeg søger på ligger i databasen?
Synes godt om
Slettet bruger
07. juli 2005 - 16:42#13
Søgningen er beregnet på at finde rækker med de mest relevante resultater. Hvis dit søgeord findes i mindst halvdelen af dine rækker, bliver det anset for et "nul-værdi ord". Det vil på dansk normalt indbefatte ord som: en, et, den, og, det, at.
Dette virker selvfølgelig bedst på større tabeller, for hvis der kun er få rækker i tabellen, er der stor risiko for at et ellers relevant ord forekommer i mange af rækkerne og derfor ignoreres.
Så prøv at tilføje nogle flere rækker, og sørg for at rækkerne indeholder reelt forskellig data.
der er pt kun én række med data, men 10 kolonner - jeg bruger et navn at søge på, og det kan da ikke siges at være så almindeligt!
Synes godt om
Slettet bruger
08. juli 2005 - 14:41#15
Nej, men da MySQL jo skal være ligeglad med hvilket sprog dit indhold er på, er den nødt til bare at gå ud fra indholdet af din tabel. På dansk vil 'et' eller 'den' være ord uden relevans, for de vil forekomme overalt, men på engelsk, vil de normalt være ganske gode søgeord.
Derfor bliver ord regnet for at have mindre søgeværdi, jo større procentdel af rækkerne, de indgår i, og hvis et ord er i halvdelen eller flere af rækkerne, bliver det simpelhen ignoreret, da det ikke er værd at søge efter.
I dit tilfælde er ALLE ord i nøjagtig 100% af rækkerne. 100% er mere end halvdelen, så uanset hvilket ord, du søger efter kommer du ikke til at få noget resultat. Enten vil søgeordet være i 100% af rækkerne og dermed være værdiløst, eller også er ordet ikke i tabellen. Begge dele vil give et tomt søgeresultat.
Lav mindst 2 rækker mere, og sørg for at dit søgeord ikke er i de to nye rækker.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.