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.??
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
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.