Lösungsansatz

Arndtinho

Erfahrenes Mitglied
Hallo,

ich habe eine Tabelle mit folgender Struktur:

Spalte 1: ArtNr
Spalte 2: Quali_A -> (Menge: 1)
Spalte 3: Quali_B -> (Menge: 3)
Spalte 4: Quali_C -> (Menge: 0)

Damit Artikel1 (definiert über ArtNr) produziert werden kann, braucht man Material mit mindestens der Qualitätsstufe 'C'. Ich muss also in der Tabelle prüfen, ob die Spalte Quali_C einen Eintrag enthält. Ist dies nicht der Fall muss die Spalte Quali_B geprüft werden.
Artikel2 braucht mindestens Qualistufe 'B'. Jetzt reicht es also, in der Spalte Quali_B zu schauen, ob Material vorhanden ist oder nicht. Falls nicht, prüfe Spalte Quali_A. Welche Qualitätsstufe benötigt wird bekomme ich aus dem String 'ArtNr' (den "zerlege" ich vorher).
Zuerst prüfe ich, ob der Artikel überhaupt eingetragen ist (normalerweise sollte das der Fall sein). No Problem.
Aber wie frage ich jetzt die Qualitätsstufen ab?

Gruß,
Arndtinho
 
für Artikel 1 dürfte die summe aus QualiB und QualiC reichen. Denn wenn die Summe>0 dann steht entweder in C oder in B oder in beiden etwas.
 
Aber woher weis denn das SELECT welche Spalten abgefragt werden müssen?
Also:
zerlegeter String sagt mir : brauche Qualistufe B
Ich muss also nachschauen ob was in Quali_B steht. Das würde ja einen solches Statement ergeben.

SELECT Quali_B FROM table WHERE artnr = Artikelnummer

Braucht man Quali A müsste das Statement so aussehen:

SELECT Quali_A FROM tabel WHERE artnr = Artikelnummer


Gruß,
Arndtinho
 
Wer generiert denn die SQL-Statements? Das müsste doch ein Art Programm sein. Dieses kann doch auch sicher entscheiden welches SQL-Statement benötigt wird (aufgrund der gewählten Artikelnummer)
 
Wenn Du z.B. mit php arbeitest, dann könntest Du das so lösen:

PHP:
$qual = ...//herausfiltern von Deiner Qualitätsstufe

$sql = "SELECT Quali_".$qual." FROM table WHERE artnr = Artikelnummer";
$result = mysql_query($sql) or die(mysql_error());
...
 
So, das funktioniert.
Wenn jetzt aber das Material der gewünschten Menge nicht vorhanden ist, soll in die nächst bessere Qualitätsstufe geschaut werden ob da Material da ist.

Beispiel:

benötigte Materialquali: C
in Quali_C ist kein Material vorhanden
Prüfe in Quali_B

Wie löst man das jetzt?

Gruß,
Arndtinho
 
Am einfachsten fragst du einfach alle Qualis ab und Wertest dann mit PHP aus welche Quali du brauchst.
 
Sozusagen:

PHP:
$ben_quali = C;
SELECT alle_Quali Spalten FROM table
while ($row = mysql_fetch_array($res, MYSQL_ASSOC))
{
    $stock_A = $row["Quali_A"];
    $stock_B = $row["Quali_B"];
    $stock_C = $row["Quali_C"];
}
if($stock_C > 0)
   echo "Body vorhanden";
else
    schaue in $stock_B

Bleibt die Frage, wie ich dem Programm klarmache, das es zuerst in $stock_C schauen muss und dann, falls das 'else' zutrifft in $stock_B.

Gruß,
Arndtinho
 
mit
PHP:
if (bedingung){
   ...
}
else if (Bedingung) {
  ...
}
else {
   ...
}

Könntest du das z.B. machen...
 

Neue Beiträge

Zurück