Hallo,
ich habe folgende Funktion geschrieben und obwohl diese die Datensätze nur einmal eintragen soll, werden sie ständig zwei mal in die Datenbank eingetragen.
Ich kann einfach keinen Fehler finden, der den Doppeleintrag verursacht. Vielleicht könnt ihr ja mal drüberschauen. Eventuell fällt euch was auf.
Vielen Dank für eue Hilfe!
ich habe folgende Funktion geschrieben und obwohl diese die Datensätze nur einmal eintragen soll, werden sie ständig zwei mal in die Datenbank eingetragen.
Ich kann einfach keinen Fehler finden, der den Doppeleintrag verursacht. Vielleicht könnt ihr ja mal drüberschauen. Eventuell fällt euch was auf.
Vielen Dank für eue Hilfe!
PHP-Code:
<?php
// sessionid
session_start();
$_SESSION['PHPSESSID'] = session_id();
function sis($kundennumm, $belegverbi)
{
#$kundennumm = "14344";
#$belegverbi = "14344264024815";
// ini-file auslesen
$ini_array = parse_ini_file("../config.ini", TRUE);
// datenbankverbindung
include("../db_connect.inc.php");
$db2 = mysql_connect("www.example.de", "test", "test");
mysql_select_db("example_de", $db2);
// Example
$query_b = "
SELECT *
FROM _sbb_kunde
WHERE Kundennumm = '$kundennumm'
";
$result_b = mysql_query($query_b, $db2);
$row_b = mysql_fetch_assoc($result_b);
// SIS
$query = "
SELECT *, (SELECT t2.lieferant FROM belegpo t2
WHERE t2.lieferant = 'Example GmbH'
AND t2.belegverbi = '$belegverbi') as lieferant
FROM beleg
WHERE belegverbi = '$belegverbi'
";
$result = mysql_query($query, $db);
$row = mysql_fetch_assoc($result);
if($row['lieferant'] != "") {
if($row['lstrasse'] == "" AND $row['lplz'] == "") {
$row['lvorname'] = $row['vorname'];
$row['lnachname'] = $row['nachname'];
$row['lname2'] = $row['name2'];
$row['lstrasse'] = $row['strasse'];
$row['lplz'] = $row['plz'];
$row['lort'] = $row['ort'];
$row['lland'] = $row['land'];
}
// Example
$query_a = "
INSERT
INTO _sbb_ibeleg
(Belegart,Belegverbi,Kundennumm,Name,Name2,Strasse,Land,Plz,Ort,
Zahlungszi,Versandart,Lname,Lstrasse,Lplz,Lort,Lland,Inetbeleg,
xbestell_datum,xsis,xstatus,Lname2)
VALUES('Auftrag','$row[belegverbi]','$row_b[Kundennumm]','$row_b
[Vorname] $row_b[Name]',
'$row_b[Name2]','$row_b[Strasse]','$row_b[Land]','$row_b[Plz]','$row_b
[Ort]','$row_b[Zahlungszi]','$row_b[Versandart]',
'$row[lvorname] $row[lnachname]','$row[lstrasse]','$row[lplz]','$row
[lort]','$row[lland]','1','$row[datum]',
'ShopInShop','Halten','$row[lname2]')
";
print $query_a . "<br><br>";
mysql_query($query_a, $db2);
// Style oder Artikel
if($row_b['kopplung'] == "") {
$query_f = "
SELECT *
FROM staffel
WHERE preisstaffel = '$row_b[preisstaffel]'
";
$result_f = mysql_query($query_f, $db2);
$row_f = mysql_fetch_assoc($result_f);
$row_b['kopplung'] = $row_f['kopplung'];
}
if($row_b['kopplung'] == "STYLE") {
$query_g = "
SELECT *, (SELECT sum(t2.anzahl) FROM belegpo t2 WHERE
t2.oberartikelnum = t1.oberartikelnum
AND t2.lieferant = 'Example GmbH') as anzahl2
FROM belegpo t1
WHERE t1.belegverbi = '$belegverbi'
AND t1.oberartikelnum != ''
AND t1.lieferant = 'Example GmbH'
GROUP BY t1.oberartikelnum
";
$result_g = mysql_query($query_g, $db);
while($row_g = mysql_fetch_assoc($result_g)) {
$style[$row_g['oberartikelnum']] = $row_g['anzahl2'];
}
}
$query_c = "
SELECT *
FROM belegpo
WHERE belegverbi = '$row[belegverbi]'
AND porto = '0'
AND lieferant = 'Example GmbH'
ORDER BY id ASC
";
$result_c = mysql_query($query_c, $db);
$postennumm = 1;
$gewicht = 0;
$gesamtsumme = 0;
while($row_c = mysql_fetch_assoc($result_c)) {
$query_e = "
SELECT *
FROM _sbb_preislis
WHERE Artikelnum = '$row_c[artikelnum]'
";
if($row_b['kopplung'] == "ARTIKEL" OR $row_c['oberartikelnum']
== "") {
$query_e.= "AND Anzahl <= '$row_c[Anzahl]' ";
}
else if($row_b['kopplung'] == "STYLE") {
$query_e.= "AND Anzahl <= " . $style[$row_c['oberartikelnum']];
}
$query_e.= "
AND Preisstaff = '$row_b[preisstaffel]'
ORDER BY Anzahl DESC
LIMIT 1
";
$result_e = mysql_query($query_e, $db2);
$row_e = mysql_fetch_assoc($result_e);
// Gewicht
$query_h = "
SELECT Gewicht
FROM _sbb_lager
WHERE Artikelnum = '$row_c[artikelnum]'
";
$result_h = mysql_query($query_h, $db2);
$row_h = mysql_fetch_assoc($result_h);
$gewicht += $row_c['anzahl'] * $row_h['Gewicht'];
$gesamtsumme += $row_c['Preis1'];
$query_d = "
INSERT
INTO _sbb_ibelegpo
(Belegart,Belegverbi,Postennumm,Artikelnum,Anzahl,Einzelprei,zusatztext)
VALUES('Auftrag','$row[belegverbi]','$postennumm','$row_c
[artikelnum]','$row_c[anzahl]','$row_e[Preis1]','')
";
print $query_d . "<br>";
mysql_query($query_d, $db2);
$postennumm++;
}
// Versandkosten
if($ini_array['versand']['neutral'] == 1) {
if($row['lland'] == "D" || $row['lland'] == "DE") {
$zone = 1;
}
else if($row['lland'] == "A" || $row['lland'] == "AT" || $row['lland']
== "LU" || $row['lland'] == "NL") {
$zone = 2;
}
else {
$zzgl_versand = 1;
}
}
else {
if($row_b['Land'] == "D" || $row_b['Land'] == "DE") {
$zone = 1;
}
else if($row_b['Land'] == "A" || $row_b['Land'] == "AT" || $row_b
['Land'] == "LU" || $row_b['Land'] == "NL") {
$zone = 2;
}
else {
$zzgl_versand = 1;
}
}
$query_i = "
SELECT gewicht_bis, preis
FROM frachtkosten
WHERE zone = '$zone'
ORDER BY gewicht_bis DESC
LIMIT 1
";
$result_i = mysql_query($query_i, $db2);
$row_i = mysql_fetch_assoc($result_i);
$max_gewicht_je_paket = $row_i[gewicht_bis];
if($gewicht > $max_gewicht_je_paket) {
$preis_max_gewicht = $row_i[preis];
$multiplikator_max_gewicht = $gewicht / $max_gewicht_je_paket;
$teile = split("\.", $multiplikator_max_gewicht);
$multiplikator_max_gewicht = $teile[0];
$preis_max_gewicht = $preis_max_gewicht *
$multiplikator_max_gewicht;
$rest_gewicht = $multiplikator_max_gewicht *
$max_gewicht_je_paket;
$gewicht = $gewicht - $rest_gewicht;
}
$query_i = "
SELECT preis
FROM frachtkosten
WHERE zone = '$zone'
AND gewicht_bis >= '$gewicht'
ORDER BY gewicht_bis ASC
LIMIT 1
";
$result_i = mysql_query($query_i, $db2);
$row_i = mysql_fetch_assoc($result_i);
if($preis_max_gewicht > 0) {
$row_i[preis] = $row_i[preis] + $preis_max_gewicht;
}
$row_e['Preis1'] = $row_i['preis'];
if($row_b['kopplung'] == "") {
$query_i = "
SELECT *
FROM staffel
WHERE preisstaffel = '$row_b[preisstaffel]'
";
$result_i = mysql_query($query_i, $db2);
$row_i = mysql_fetch_assoc($result_i);
if($row_i['frachtfrei_ab'] <= $gesamtsumme) {
$row_e['Preis1'] = 0.000;
}
if($row_i['mindermenge_bis'] >= $gesamtsumme) {
$mindermenge_zuschlag = $row_i['mindermenge_zuschlag'];
}
}
else {
if($row_b['frachtfrei_ab'] <= $gesamtsumme) {
$row_e['Preis1'] = 0.000;
}
if($row_b['mindermenge_bis'] >= $gesamtsumme) {
$mindermenge_zuschlag = $row_b['mindermenge_zuschlag'];
}
}
if($zzgl_versand != 1) {
$query_d = "
INSERT
INTO _sbb_ibelegpo
(Belegart,Belegverbi,Postennumm,Artikelnum,Anzahl,Einzelprei,zusatztext)
VALUES('Auftrag','$row[belegverbi]','$postennumm','VERSAND','1',
'$row_e[Preis1]','$gewicht')
";
print $query_d . "<br>";
mysql_query($query_d, $db2);
}
if($mindermenge_zuschlag > 0) {
$postennumm++;
$query_d = "
INSERT
INTO _sbb_ibelegpo
(Belegart,Belegverbi,Postennumm,Artikelnum,Anzahl,Einzelprei,zusatztext)
VALUES('Auftrag',
'$row[belegverbi]','$postennumm','100024','1',
'$mindermenge_zuschlag','')
";
print $query_d . "<br>";
mysql_query($query_d, $db2);
}
}
mysql_close($db);
mysql_close($db2);
}
sis('14344','14344264024815');
?>
Kommentar