ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
146
146
EMPFEHLEN
-
Hallo leute,
ich habe ein Problem mit der Bildung eines Arrays.
Ich benötige das Array in folgender Form:
Code :1 2 3 4 5
Array ( [0] => Array ( [products_price_break_id] => 138 [products_id] => 28 [products_price] => 3.0000 [products_qty] => 1 [products_options_values_id] => 5 ) ) Array ( [1] => Array ( [products_price_break_id] => 139 [products_id] => 28 [products_price] => 4.0000 [products_qty] => 2 [products_options_values_id] => 6) ) Array ( [2] => Array ( [products_price_break_id] => 140 [products_id] => 28 [products_price] => 5.0000 [products_qty] => 3 [products_options_values_id] => 7 ) )
Wie bilde ich so ein Array?
Ich habe schon alles versucht, bin aber mit meinem Latein am Ende.
Hier mein letzter Versuch.
Wäre wirklich sehr dankbar wenn mal einer drüberschauen könnte.PHP-Code:$price_breaks_array = array();
$pov = tep_get_pov($_GET['products_id'], $languages_id);
for ($i=0, $n=sizeof($pov); $i<$n; $i++) {
$price_breaks_query = tep_db_query("select * from " . TABLE_PRODUCTS_PRICE_BREAK . "
where products_id = '" . (int)$product_id . "'
and products_options_values_id = '".$pov[$i]['products_options_values_id']."'
order by products_qty");
while ($price_break = tep_db_fetch_array($price_breaks_query)) {
$price_breaks_array[$i] = $price_break;
}
echo print_r($price_breaks_array).'<br><br>';
}
GrussGeändert von xtramen01 (23.07.10 um 14:12 Uhr)
-
die schleife ohne $i, denn $i bleibt immer gleich und somit überschreibst du immer den gleichen Eintrag
PHP-Code:while ($price_break = tep_db_fetch_array($price_breaks_query)) {
$price_breaks_array[] = $price_break;
}
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Ok Danke. Aber so hatte ich es auch schon probiert.
Ich mach mal ein anderes Beispiel das es hoffentlich genauer beschreibt was nicht klappt.
Ich habe die besagte Abfrage:
Welche mir folgendes RICHTIGES ausgibt:PHP-Code:$price_breaks_array = array();
$pov = tep_get_pov($_GET['products_id'], $languages_id);
for ($i=0, $n=sizeof($pov); $i<$n; $i++) {
echo $pov[$i]['products_options_values_name'] . '<br>';
$price_breaks_query = tep_db_query("select * from " . TABLE_PRODUCTS_PRICE_BREAK . " where products_id = '" . (int)$product_id . "' and products_options_values_id = '".$pov[$i]['products_options_values_id']."' order by products_qty");
while ($price_break = tep_db_fetch_array($price_breaks_query)) {
echo $price_break['products_qty'] . '<br>';
}
}
Code :1 2 3 4 5 6 7 8 9 10
Name 1 1 2 3 Name 2 5 6 7 Name 3 Name 4
Die echos die da stehen sind nur zum testen ob die Abfrage richtig ist.
Nun muss ich das Array an einer anderen Stelle genau so ausgeben lassen.
Das versuche ich mit folgender selben Abfrage, nur halt am Schluss das Array gebildet:
Und ausgeben lassen tue ich es mit:PHP-Code:$price_breaks_array = array();
$pov = tep_get_pov($_GET['products_id'], $languages_id);
for ($i=0, $n=sizeof($pov); $i<$n; $i++) {
$price_breaks_query = tep_db_query("select * from " . TABLE_PRODUCTS_PRICE_BREAK . " where products_id = '" . (int)$product_id . "' and products_options_values_id = '".$pov[$i]['products_options_values_id']."' order by products_qty");
while ($price_break = tep_db_fetch_array($price_breaks_query)) {
$price_breaks_array[$i][] = $price_break;
}
}
Als Ergebniss bekomme ich:PHP-Code:$pov = tep_get_pov($_GET['products_id'], $languages_id);
for ($i=0, $n=sizeof($pov); $i<$n; $i++) {
echo $pov[$i]['products_options_values_name']. '<br>';
foreach($price_breaks_array as $price_break) {
echo $price_break[$i]['products_qty'].'<br>';
}
}
Code :1 2 3 4 5 6 7 8 9 10
Name 1 1 5 Name 2 2 6 Name 3 3 7 Name 4
Das Array ist also irgendwie falsch gebildet.
Also anders wie in der eigentliche Abfrage.
hast Du eine Idee, warum das nicht klappen kann?
Gruss und Danke !
-
In der Ausgabe hast du mMn das $i am falschen Ort. So sollte es glaub aussehen
PHP-Code:foreach($price_breaks_array[$i] as $price_break) {
echo $price_break['products_qty'].'<br>';
}
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Boahhh!!
Das klappt tatsächlich!
Ich hätte mir Stunden ersparen können.
Danke dir recht herzlich!
Gruss
Ähnliche Themen
-
aus Mehrdimensionalem Array ein Eindimensionales Array erstellen
Von FiselM im Forum Java GrundlagenAntworten: 8Letzter Beitrag: 22.06.10, 17:20 -
array_intersect mit mehrdimensionalem Array
Von jaegerschnitzel im Forum PHPAntworten: 5Letzter Beitrag: 20.06.08, 09:39 -
Denklücke / Problem mit mehrdimensionalem Array
Von Mik3e im Forum PHPAntworten: 1Letzter Beitrag: 20.02.06, 11:44 -
Problem mit mehrdimensionalem Array
Von timäää im Forum Flash PlattformAntworten: 8Letzter Beitrag: 15.08.05, 13:57 -
[C++] Problem mit mehrdimensionalem Array
Von Yupa im Forum C/C++Antworten: 7Letzter Beitrag: 25.04.04, 19:07





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren