27. marts 2004 - 16:55Der er
12 kommentarer og 1 løsning
Ord bruge flest gange
Hej Allesammen.. Kan man på nogen som helst måde lave en php kode der undersøger $row[besked] for det ord der er brugt flest gange.?? Altså hvis nu at ordet "Hej" er blevet brugt flest gange i $row[besked] så skal den udskrive ordet på siden..
Jeg tror godt at man kan på en eller anden måde.. Men hvordan.??
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
Slettet bruger
27. marts 2004 - 17:49#1
Måske noget med...
starte med at fjerne alle kommaer og punktummer og andre sjove tegn.
Kaste al teksten ind i et array, ved at dele hvor der er mellemrum.
Fjerne dubletter i arrayet, og sortere det på en eller anden måde efter antal gange ordet optræder. Herefter er det blot at tage hhv. første/sidste element og udskrive det.
Det er til brugersystemet på min side.. Der skal den vise hvilket ord brugeren mest har brugt.. Hvad gør jeg galt i denne kode.. Den udskriver ikke noget:
$tjekker = mysql_query("SELECT besked FROM forum_msg WHERE navn = '$_GET[bruger]'"); $findes = mysql_numrows($tjekker); if($findes == 1){ $tjek_r = mysql_query("SELECT besked FROM forum_msg WHERE navn = '$_GET[bruger]'"); $r = mysql_fetch_array($tjek_r); $str = $r["besked"]; echo "Ord brugt mest i forummet: ".flestord($str);
Selve koden ser ok ud, så du må i gang med at debugge. Start med at tjekke at $_GET['bruger'] indeholder hvad den skal. Og at der kun forekommer præcis én række i tabellen med dette navn.
Det skal lige siges at i forum_msg der er dér kan der godt være mere end 1 række med $_GET[bruger].. I forum_msg gemmes alle de kommentarer der er blevet postet på tråde i forummet..
Hvis du vil tjekke alle kommentarer fra brugeren, kan du prøve med:
$tjekker = mysql_query("SELECT besked FROM forum_msg WHERE navn = '$_GET[bruger]'"); if (mysql_num_rows($tjekker) > 0) { $str = ''; while ($r = mysql_fetch_row($tjekker)) { $str .= $r[0]; } echo "Ord brugt mest i forummet: ".flestord($str); }
Nu virker et.. Således skulle koden se ud: $tjekker = mysql_query("SELECT besked FROM forum_msg WHERE navn = '$_GET[bruger]'"); function flestord($str) { $str = strtolower($str); preg_match_all("/\b(\w+)\b/Um", $str, $a); $b = array_unique($a[1]); foreach($b as $ord) { $arr[$ord] = substr_count($str, ' '.$ord.' '); } arsort($arr, SORT_NUMERIC); reset($arr); return key($arr); } if (mysql_num_rows($tjekker) > 0) { $str = ''; while ($r = mysql_fetch_row($tjekker)) { $str .= $r[0]; } echo "Ord brugt mest i forummet: ".flestord($str); }
Tusind tak :)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.