24 April 2013

weil ich nicht so recht weiß wo

Ausflug Neuseenland
Ausflug Neuseenland (Photo credit: gebuehren-scout)
Ich beschreibe hier mal den 'Bedarf' für Programmierunterstützungsleistung, weil ich nicht ein bestimmtes Forum bzw. eine bestimmte Plattform auswählen wollte.

In einer MySQL-Datenbank befinden sich (ca. 8.000) Texte mit HTML-Code.

In einem Feld befindet sich der 'relevante' Textteil. Der 'relevante' Textteil soll von HTML-Tags befreit werden und mittels einer vorhandenen php-Funktion die Wörter nach ihrer Anzahl sortiert werden.
Dieses Ergebnis (Liste von Wörtern) soll in die Ausgangsdatenbank (ein bestimmtes Feld) geschrieben werden.

--- Update mit dem Beginn zur Lösung ---

<?php
require_once ('konfiguration.php');
$db_link = mysql_connect ( MYSQL_HOST,
                           MYSQL_BENUTZER,
                           MYSQL_KENNWORT );
$db_sel = mysql_select_db( MYSQL_DATENBANK )
   or die("Auswahl der Datenbank fehlgeschlagen");
// die $db_tabelle wird definiert, hier aber auskommentiert
// die Abfrage der Datensätze wird vorbereitet
$sql = "SELECT * FROM $db_tabelle ORDER BY lan_repore_id";
$db_erg = mysql_query( $sql );
if ( ! $db_erg ) { die('Ungültige Abfrage : ' . mysql_error()); }


while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
$wort="";
for ($durchlaufzaehler = 0; $durchlaufzaehler < 2; $durchlaufzaehler++)
  {


// an dieser Stelle folgt der Quellcode von Steffen Geyer keywords.php
// Anpassung: Quelle ist nicht die 'Datei' sondern die Werte aus dem Feld ... $zeile['DB-Feld']
// Im Quelltext von Steffen musste ich Änderungen vornehmen, da sonst die Keywords nicht richtig erstellt werden. Es blieben immer die des ersten DB-Eintrages.
// $einzelne_keywords_array=""; habe ich direkt über //--Unterschiedliche Ausdrücke suchen und Häufigkeit zählen--// eingefügt
// Ausgabe erfolgt nicht als echo $keywords;

// Query für In DB schreiben erzeugen
$sql = "
UPDATE $db_tabelle
   SET `lan_metakey` = $keywords
   WHERE `lan_repore_id` = $zeile['lan_repore_id'];
";

// Query ausführen und eventuell Fehlerausgabe
   $db_erg = mysql_query($sql)
   or die("Update fehlgeschlagen: " . mysql_error());


// und nun noch der Schluß


// Speicher freigeben
mysql_free_result( $db_erg );

// DB schließen
mysql_close($db_link );
?>

Herausforderung(en):
  1. Wenn ich nur einen Datensatz nutze (mit WHERE ... ) funktioniert es wunderbar. Ich dachte dann an eine while-Schleife für alle Datensätze, aber dann kommen immer die gleichen Wörter heraus.
  2. Ich habe jetzt noch die Stoppwortliste erweitert und bin bei ~ 1.700 Wörtern und Zeichenketten.
  3. Problematisch ist jetzt auch die utf8-Kodierung. Liegt wohl am DB-Inhalt.
  4. Einzelne, generierte Schlagwörter bestehen aus einem Freizeichen oder einer Zeichenkette mit Freizeichen beginnend.
  5. ...
Mein Dank geht an http://www.php-kurs.com/ ohne die ich - als Mann der Zahlen - nicht soweit gekommen wäre !

Enhanced by Zemanta

Keine Kommentare:

Beliebte Posts