Hallo,
ich habe ein dreidimensionales Array erstellt ($g), in dem auf verschiedenen Ebenen Bereiche für Artikel festgelegt sind. Diese Artikelbereiche will ich nun wieder auslesen. Wenn jedoch eine Artikelnummer in dem Array vorkommt, die nicht in der Datenbank steht, bleibt das Skript bei dieser Artikelnummer stehen.
Nachstehend der Quellcode:
for ($x = 0; $x < floor ($grid); $x++) {
for ($y = 0; $y < floor ($grid * $hoehe / $breite); $y++) {
for ($z = 1; $z < 6; $z++) { // MP Ebenen auslesen
$artnr = ($g[$x][$y][$z]);
$sqlart = 0; // artnr aus Datenbank
if ($artnr != 0) {
// Artikel schon vorhanden ?
$sql = "select artnr, minx, maxx, miny, maxy from htmltemp where artnr = $artnr ";
$minmaxresult = odbc_exec ($conn, $sql);
odbc_fetch_row($minmaxresult); // jede artnr kommt nur einmal vor
$sqlart = odbc_result($minmaxresult, 1);
$minx = odbc_result($minmaxresult, 2);
$maxx = odbc_result($minmaxresult, 3);
$miny = odbc_result($minmaxresult, 4);
$maxy = odbc_result($minmaxresult, 5);
if ($x < $minx) { $minx = $x; } // eo minx
if ($x > $maxx) { $maxx = $x; } // eo maxx
if ($y < $miny) { $miny = $y; } // eo miny
if ($y > $maxy) { $maxy = $y; } // eo maxy
// Artikelfläche (Textfeld + MPminimax)
for ($xx = $minx; $xx < ($maxx + 1); $xx++) {
for ($yy = $miny; $yy < floor ($maxy + 1); $yy++) {
$g[$xx][$yy][6] = $artnr; // Ebene 6 für Feldflächen
} // eo for yy
} // eo for xx
// erste Zeile mit vorhandener Artnr
if ($miny < $cutline) {
$cutline = $miny; //oberste Zeile mit Inhalt
} // eo if
if ($sqlart == $artnr) {
$sql = "update htmltemp set minx = $minx, maxx = $maxx, miny = $miny, maxy = $maxy where artnr = $artnr";
} else {
$sql = "insert into htmltemp (artnr, minx, maxx, miny, maxy) values ($artnr, $minx, $maxx, $miny, $maxy)";
} // eo if vorhanden
} // eo if artnr vorhanden
odbc_exec ($conn, $sql);
} // eo for z-werte
} // eo for y
} // eo for x
Hoffe, ihr könnt mir helfen,
Worrel