Ich habe eine Tabelle mit Keywords. Nun habe ich eine Liste von Wörtern, die in meiner Suchmaschine "Indexiert" werden sollen.
Dazu benötige ich die "Keywordid" des Keywords in der Keyword-Tabelle. Dies mache ich nun mit vielen Select-Abfragen. Irgendwie ist es doch
bestimmt möglich alle diese Select-Abfragen in eine Abfrage zusammenzufassen. Das Problem ist nur, wenn ein Keyword nicht in der
Keywordtabelle enthalten ist, muss es erst per Insert reingeschrieben werden, um dann anschliesend eine Select abfrage zu machen um die
keywordid heraus zu bekommen.
Weiss leider nicht wie ich die Abfragen zusammenfassen soll, da es schon
mal 500.000 Abfragen bei einem Durchgang werden können.
Hier mal der Code:
Dazu benötige ich die "Keywordid" des Keywords in der Keyword-Tabelle. Dies mache ich nun mit vielen Select-Abfragen. Irgendwie ist es doch
bestimmt möglich alle diese Select-Abfragen in eine Abfrage zusammenzufassen. Das Problem ist nur, wenn ein Keyword nicht in der
Keywordtabelle enthalten ist, muss es erst per Insert reingeschrieben werden, um dann anschliesend eine Select abfrage zu machen um die
keywordid heraus zu bekommen.
Weiss leider nicht wie ich die Abfragen zusammenfassen soll, da es schon
mal 500.000 Abfragen bei einem Durchgang werden können.
Hier mal der Code:
PHP-Code:
<?php
$ANZGES = count($arr_words);
for ($i = 0; $i < $ANZGES; $i++) {
$sqlString = "SELECT id from $table_keywords where keyword='".$arr_words[$i]."' limit 1";
$Ergebnis = mysql_db_query($Quelle_update, $sqlString, $Server_update);
if (!$Ergebnis) {
echo "<br>Datenbankfehler: $sqlString";
}
else {
$anzahl = mysql_num_rows($Ergebnis);
if ($anzahl) {
$keywordid[] = mysql_result($Ergebnis, 0, 'id');
}
}
//keyword noch nicht in der keywordtabelle eingetragen
if(!isset($keywordid)) {
$sqlString = "INSERT INTO $table_keywords (keyword)
VALUES ('".$arr_words[$i]."') ";
$Ergebnis = mysql_db_query($Quelle_update, $sqlString, $Server_update);
if (!$Ergebnis) {
echo "<br>Datenbankfehler: $sqlString";
}
else {
echo $arr_words[$i]." eingetragen<br>";
}
$sqlString = "SELECT id from $table_keywords where keyword='".$arr_words[$i]."' limit 1";
$Ergebnis = mysql_db_query($Quelle_update, $sqlString, $Server_update);
if (!$Ergebnis) {
echo "<br>Datenbankfehler: $sqlString";
//return "Datenbankfehler: $sqlString";
}
else { // Daten auslesen
$anzahl = mysql_num_rows($Ergebnis);
if ($anzahl) {
$keywordid[] = mysql_result($Ergebnis, 0, 'id');
}
}
}
}
?>
Kommentar