wie kann ich ausgeben wieviel gleiche Worte sich in einer db befinden??
würde mich sehr um einen tip freuen.
bin hallt noch newbie, vielen dank
würde mich sehr um einen tip freuen.
bin hallt noch newbie, vielen dank
<?php
$db = "all";
$link = mysql_connect( "localhost", "root", "xxx" );
$temp = mysql_select_db( $db, $link );
$result= mysql_query("SHOW TABLES;",$link);
while ($a=mysql_fetch_array($result))
$all_tables[]=$a["Tables_in_all"];
// wieviele tables haben wir?
$len = count($all_tables);
print("<b>Tabellen:</b><br>----------------<br>");
for($i=0;$i<$len;++$i)
printf("%s<br>",$all_tables[$i]);
print("----------------<br><b>Inhalt der Felder:</b><br>---------------<br>");
// hole alle wörter aus allen spalten der db heraus
for($i=0;$i<$len;++$i){
$fields = mysql_list_fields($db, $all_tables[$i], $link);
$columns = mysql_num_fields($fields);
for ($j=0;$j<$columns;++$j)
$field[]=mysql_field_name($fields, $j);
$result=mysql_query("SELECT ".implode(", ",$field)." FROM {$all_tables[$i]};",$link);
while($a=mysql_fetch_array($result)){
for ($j=0;$j<$columns;++$j){
$text = $a[$field[$j]];
if($text!=""){
printf("%s<br>",$text);
// das leerzeichen ist ein akzeptables worttrennzeichen ...
$words[] = explode(" ",$text);
}
}
}
unset($field);
}
// kopiere das mehrdimensionale array zwecks leichterem handling in ein einzelnes array
for($i=0;$i<count($words);++$i){
$wrdc+=count($words[$i]);
for($j=0;$j<count($words[$i]);++$j)
$tmp[]=$words[$i][$j];
}
print("--------------<br><b>Häufigkeit von Wörtern:</b><br>--------------<br>");
// benutze array_count_values für die berechnung der vorkommnisse einzelner worte
$cntval = array_count_values($tmp);
while(list($k,$v)=each($cntval))
printf("<b style='color:red'>'%s'</b> kommt %d mal vor.<br>",$k,$v);
// anzahl aller wörter
printf("---------------<br><b>Wörter insgesamt:</b> %d",$wrdc);
mysql_close($link);
?>
Kommentar