Support

Forum

Forum

Anmeldung

Geben Sie Ihren Benutzernamen und Ihr Passwort ein, um sich anzumelden.

Verbesserungsvorschlag: robustere Behandlung eines Array-Ergebnisses der Funktion daten_holen()

jveser
Neuling
Verfasst am: 09.04.2013 [12:12]
Hallo zusammen,

implementiert man die Shop-spezifische Funktion daten_holen() mit Ergebnis-Typ Array (indem man wie in der Dokumentation beschrieben $GLOBALS['datakind'] auf 2 setzt und das Ergebnis-Array in $GLOBALS['ErgebnisArray'] ablegt) so erzeugt die weitere Logik der Shopanbindung (neueste Version, vom 27. März 2013) für ein leeres Array ungültiges XML (genaue gesagt: "<OrderNotification></Bestellvorgang><OrderNotification>" ).
Um dies zu vermeiden muss man bei leerem Ergebnis den Wert $GLOBALS['ErgebnisArray'] auf NULL setzen. Ich hatte zunächst angenommen, dass ein leeres Array und NULL gleich behandelt würden.

Es wäre wünschenswert dass dies entsprechend in der Dokumentation beschrieben würde, oder besser noch, wenn der Shop-unabhängige Code das Array-Ergebnis robuster weiterverarbeiten würde.

Aufgefallen ist mir das bei einer Anpassung der gambio.php, in der ich die Funktion daten_holen() folgendermaßen angepasst habe (um sie danach weiter anzupassen) :


$GLOBALS['datakind'] = "2";

$query = "SELECT [...]"; // Originale Query
$rows = array();
$qRes = mysql_query($query);
while ($row = mysql_fetch_assoc($qRes))
{
$rows[] = $row;
}

mysql_free_result($qRes);

if (empty($rows))
{
$rows = NULL;
}
$GLOBALS['ErgebnisArray'] = $rows;
return $GLOBALS['datakind'];


Lässt man das letzte if weg, so liefert der Aufruf der orgamax_osc.php wie oben erwähnt ungültiges XML.

Edit:
Damit das Codeschnipsel funktioniert müssen die Zeilen des Arrays vor dem Ende der Funktion noch nach der Spalte "orderID" sortiert werden, da sie sonst von der weiteren Logik nicht korrekt zu Aufträgen zusammengefasst werden.
Auch bei dieser Info wäre es schön, wenn sie in der Doku stehen würde icon_wink.gif


Grüße,
Johannes
[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 10.04.2013 um 10:15.]

orgaMAX Forum hat 4531 registrierte Benutzer, 5460 Themen und 17958 Antworten.
Es werden durchschnittlich 6.16 Beiträge pro Tag erstellt.

Zur Zeit ist 1 Benutzer online, davon 1 registrierter Benutzer.
Heute war bereits 1 registrierter Benutzer online.

Moderatoren: nonickname

SUPPORT HOTLINE

Wir sind für Sie da!

+49 (0) 5231 7090-0

Montag - Freitag
8:00 - 12:00 und 13:00 - 18:00 Uhr