Hallo,
ich habe folgendes Szenario:
tbl_temp - in diese Tabelle werden stündlich aus einer anderen Datenbank (MentionDB) Datensätze importiert nachdem die Datensätze aus der vorherigen Stunde gelöscht wurden.
tbl_log - in diese Tabelle sollen Daten aus tbl_temp übernommen werden aber nur wenn in tbl_log noch kein Datensatz mit der selbern ID (
apidnr) vorhanden ist.
Aufbau der Tabellen (nur für die Abfrage relevante Daten):
tbl_temp temp_id | apidnr | ben | sku | herstnr | ean
tbl_log log_id | apidnr | ben | sku | herstnr | ean
Die Felder
temp_id und
log_id sind Primärschlüssel und werden über auto_increment gesetzt, die Werte in
apidnr sind uniqe da sie die Primärschlüssel in der oben angesprochenen MentionDB.
In tbl_temp sind nach dem ersten Import 6130 Datensätze vorhanden, in tbl_log 0. Jetzt soll mittels der folgenden Abfrage tbl_log zum ertsen Mal gefüllt werden, es müssten dann nach Adam Riese ja die selbe Anzahl an Datensätze in tbl_log sein, es sind aber 9144.
Die Abfrage:
PHP-Code:
// Daten aus "tbl_temp" auslesen
$query = "SELECT
apidnr, ben, sku, herstnr, ean
FROM
tbl_temp;";
$tempdata = $preisbotDB->execute($query);
foreach ($tempdata as $dat) { // für jedes Produkt das in "tbl_temp" steht
// Prüfen ob apidnr in "tbl_log" vorhanden ist
$query = "SELECT
log_id
FROM
tbl_log
WHERE
apidnr = " . $dat['apidnr'] . ";";
$keyid = $preisbotDB->execute($query);
if ($keyid['log_id'] == NULL) { // Wenn keine ID vorhanden ist
$ben = mysql_real_escape_string($dat['ben']); // Bezeichnung escapen da Sonderzeichen enthalten sein können
// Daten in "tbl_log" eintragen
$query = "INSERT INTO
tbl_log (apidnr, ben, sku, ean, herstnr)
VALUES
('" . $dat['apidnr'] . "',
'" . $ben . "',
'" . $dat['sku'] . "',
'" . $dat['ean'] . "',
'" . $dat['herstnr'] . "')";
$preisbotDB->execute($query);
Ich schätze das es an dieser zeile liegt
PHP-Code:
if ($keyid['log_id'] == NULL) { // Wenn keine ID vorhanden ist
verstehe aber nicht was das Problem ist.
Hoffe das ist jetzt nicht zu ausführlich geworden und das es einigermaßen verständlich ist.
Danke für die Hilfe,
wooha
Ps: War mir jetzt nicht sicher ob das in das PHP oder Datenbanken Forum soll, falls falsch bitte verschieben.