PHP Wie die Abfrage richtig lösen? (Formel)

moby07

Lieutenant
Registriert
Sep. 2007
Beiträge
901
Hallo,

aktuell habe folgende Überlegung:
(Der Text von mir in dem Code soll nur meinen Wunsch äußern, wie ich es gern hätte)

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
include 'auth.php';
$abfrage = $_SESSION['abfrage'];

for ($a=0; $a < count($abfrage); $a++)

if $Abfrage[Elementxyz] LiefererID hat eine ArtikelID, dann schreibe die ArtikelID ins neue Array $LiefererID rein.

Dies wird in der Schleife x mal gemacht.

So habe ich am Ende bei zwei Lieferanten und jeweils drei Artikeln, die zu bestellen sind folgende zusätzliche Arrays:

$LiefererID
ArtikelID
ArtikelID
ArtikelID

$LiefererID
ArtikelID
ArtikelID
ArtikelID

Im nächsten Schritt werden alle ArtikelIDs in $LiefererIDs zur Bestellpostion 1, 2 und drei gemacht.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Wie immer vielen Dank in voraus schon mal!:-)
 
Hm, schaut nach einer Hausaufgabe aus. Müsstest du die nicht selbst lösen? Du lernst ja nun nichts darüber, wie man soetwas schreibt, wenn du uns um eine Komplettlösung bittest.
Ergänzung ()

Ah, gerade gesehen, daß du ja schon einen Thread dazu hast. Wozu machst du dann einen komplett neuen auf? Warte da auf ne Antwort! Wo kämen wir denn da hin wenn jeder einen neuen Thread aufmacht nur weil er keine Geduld hat im bisherigen Thread auf Antwort zu warten? Grmpf!
 
Das ist keine Hausaufgabe. Es ist mehr ein Projekt woran ich arbeite. Das Problem ist nur, dass ich in kurzer Zeit mit mehr oder weniger Grundkenntnissen, eine Lösung präsentieren muss.
Und lernen kann man ja auch nur von Beispielen, wie es umgesetzt worden ist. Das ist eben mein Problem, dass ich nicht weiß, welche Funktionen ect. ich wann und wie einzusetzen habe. Daher auch meine relativ kleine Anfrage hier im Forum.
Ich benötige halt so einen kleinen Schupps um es vielleicht auf den Punkt zu bringen.;-) Wie schon mal gesagt, SQL kann ich relativ gut für meine Zwecke. PHP allerdings treibt mich ein wenig zum Wahnsinn.
 
Mir ist das konkrete Problem zwar nicht offensichtlich, aber ich denke du hast einfach ein Problem zu Wissen, was PHP hier bietet. Arrays sind in PHP ein Segen ;)
Code:
$arr[] = array();
for ($a=0; $a < count($abfrage); $a++) {
  array_push($arr[ $abfrage['LieferID'] ], $abfrage['ArtikelID']);
}
Damit bekommst du ein assoziatives 2-dimensionales Array, indem der Index die LieferIDs sind. Mit array_keys($arr) erhälst du alle LieferIDs um die Schleife durchlaufen zu können. So kannst du die Artikel jedes Lieferanten einzeln sortieren (, prüfen, manipulieren, etc) und weißt auch ganz fix, wieviele Positionen es jeweils werden.

Wie du siehst, gibt es auch Code-Tags ;)
 
Code:
$aLieferungen = array()
foreach($aAbfragen as $key => $aSatz) {
 if(isset($aSatz['ArtikelId']) && $aSatz['ArtikelId'] != 0) {
  $aLieferungen[$aSatz['LieferId']][] = $aSatz['ArtikelId'];
 }
}

Dann kannst du mit zwei geschachtelten foreach schön die Daten durchgehen. Ich hätte übrigens die Bestellungen von Anfang an so gespeichert: die Bestellungen als assoziatives Array aus der Db gezogen und dann mit
Code:
 $aBestellungen[$aSatz['LieferId']][$aSatz['ArtikelId']] = $aSatz;
in ein Array geschaufelt (in $aSatz steht jeweils deine Ergebniszeile aus der Db)
 
Zurück
Oben