Hey Leute,
ich habe ein Problem, mein mehrdimensionales Array zu sortieren.
Ich befürchte, dass ich im Ansatz der Anlegung des Arrays einen Fehler gemacht habe und daher die Soriterung nicht funktioniert...
Schaut selbst:
Wie ihr seht handelt es sich um Produktinformationen aus der DB, die in das Array geschrieben werden.
Eigentlich sollte diese Sortierung die Datensätze im Array sortieren, aber es kommt die Fehlermeldung
"Warning: array_multisort() [function.array-multisort]: Argument #1 is expected to be an array or a sort flag in /var/www/web128811/html/content/content_shop.php on line 338"
Scheinbar ist der Array so nicht korrekt aufgebaut, doch leider brachte die SUFU mit dieser Felhlermeldung nicht den gewünschten Erfolg...
Ich habe dann bei php.net gefunden, dass der Array als Spalte umgebastelt werden muss, was ich dadurch versuchte:
Doch auch das brachte nicht den gewünschten Erfolg...
Kann mir bitte jemand helfen, wie ich den Array umbasteln muss oder wie die korrekte Sortierabfrage lauten muss?
Bin noch am verzweifeln...
DANKE!!!!
ich habe ein Problem, mein mehrdimensionales Array zu sortieren.
Ich befürchte, dass ich im Ansatz der Anlegung des Arrays einen Fehler gemacht habe und daher die Soriterung nicht funktioniert...
Schaut selbst:
PHP:
$abfrage = "SELECT * FROM $db_shop_produkte WHERE freigabe = 1 AND cat = $cat_id ";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$produkt_id = $row ->id;
$produkt_preis = $row ->preis;
$produkt_headline = $row ->headline;
$produkt_bewertung_sterne = $row ->bewertung_sterne;
$produkt_bild_1 = $row ->bild_1;
$produkt_preis_alt = $row ->preis_alt;
$produkt_mwst = $row ->mwst;
$produkt_einheit = $row ->einheit;
$produkt_menge = $row ->menge;
$produkt_text = $row ->text;
$produkte[] = array('produkt_id' => $produkt_id,
'produkt_preis' => $produkt_preis,
'produkt_headline' => $produkt_headline,
'produkt_bild_1' => $produkt_bild_1,
'produkt_preis_alt' => $produkt_preis_alt,
'produkt_mwst' => $produkt_mwst,
'produkt_einheit' => $produkt_einheit,
'produkt_menge' => $produkt_menge,
'produkt_text' => $produkt_text,
'produkt_vmenge' =>1,
'produkt_bewertung_sterne' => $produkt_bewertung_sterne);
}
Wie ihr seht handelt es sich um Produktinformationen aus der DB, die in das Array geschrieben werden.
PHP:
// DATENSATZ SORTIEREN
if($sort == "preis" AND $order == "ASC") { array_multisort($produkt_preis, SORT_ASC, $produkte); } // sortieren nach Preis
elseif($sort == "preis" AND $order == "DESC") { array_multisort($produkt_preis, SORT_DESC, $produkte); } // sortieren nach Preis absteigend
elseif($sort == "headline" AND $order == "ASC") { array_multisort($produkte[], SORT_ASC, $produkte); echo "<br>SORTIERT<br>"; } // sortieren nach Name
elseif($sort == "headline" AND $order == "DESC") { array_multisort($produkt_headline, SORT_DESC, $produkte); } // sortieren nach Name absteigend
elseif($sort == "bewertung_sterne" AND $order == "ASC") { array_multisort($produkt_bewertung_sterne, SORT_ASC, $produkte); } // sortieren nach Bewertung
elseif($sort == "bewertung_sterne" AND $order == "DESC") { array_multisort($produkt_bewertung_sterne, SORT_DESC, $produkte); } // sortieren nach Bewertung absteigend
else
Eigentlich sollte diese Sortierung die Datensätze im Array sortieren, aber es kommt die Fehlermeldung
"Warning: array_multisort() [function.array-multisort]: Argument #1 is expected to be an array or a sort flag in /var/www/web128811/html/content/content_shop.php on line 338"
Scheinbar ist der Array so nicht korrekt aufgebaut, doch leider brachte die SUFU mit dieser Felhlermeldung nicht den gewünschten Erfolg...
Ich habe dann bei php.net gefunden, dass der Array als Spalte umgebastelt werden muss, was ich dadurch versuchte:
PHP:
foreach ($produkte as $key => $row) {
$produkt_id[$key] = $row['produkt_id'];
$produkt_preis[$key] = $row['produkt_preis'];
$produkt_headline[$key] = $row['produkt_headline'];
$produkt_bild_1[$key] = $row['produkt_bild_1'];
$produkt_preis_alt[$key] = $row['produkt_preis_alt'];
$produkt_mwst[$key] = $row['produkt_mwst'];
$produkt_einheit[$key] = $row['produkt_einheit'];
$produkt_menge[$key] = $row['produkt_menge'];
$produkt_text[$key] = $row['produkt_text'];
$produkt_vmenge[$key] = $row['produkt_vmenge'];
$produkt_bewertung_sterne[$key] = $row['produkt_bewertung_sterne'];
}
Doch auch das brachte nicht den gewünschten Erfolg...
Kann mir bitte jemand helfen, wie ich den Array umbasteln muss oder wie die korrekte Sortierabfrage lauten muss?
Bin noch am verzweifeln...
DANKE!!!!