Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

[PHP] Array mit einer Art Index ansprechen

  Alt 12. Apr 2006, 13:38
Hi,

ich muss mal wieder ein wenig mit PHP nerven. Im Folgenden ist ein Code-Ausschnitt zu sehen. Dort benötige ich in der foreach-Schleife den Wert der Spalte 'prod_img' aus dem $arr_products_single_data-Array mit der zugehörigen 'prod_id'.

Das Array sieht so aus (es wird später deutlich mehr Einträge enthalten):

Code:
Array ( [prod_id] => 14 [prod_img] => product_1.jpg )
Anhand der 'prod_id', die ich habe, möchte ich nun auf diesen Array-Eintrag zugreifen können, nur weiß ich absolut nicht, wie ich das bewerkstelligen soll. Schön wäre natürlich etwas wie

Code:
$arr_products_single_data[14]
Natürlich geht es so nicht, da sist klar. Und das Array kann ich nicht ändern, das muss so aufgebaut sein, wie es aktuell der Fall ist.

Hier nun der Code. Mein Problem liegt in der Zeile, in der ich 'IMAGE' das Bild zuweisen muss:

Code:
[color=#11117F]$arr_products_single_data[/color] = [color=#11117F]get_sql_array[/color]([color=#E60000]"SELECT prod_id, prod_img FROM "[/color] .
   [color=#11117F]PRODUCTS_DATA[/color] . [color=#E60000]" WHERE prod_cat_id = "[/color] . [color=#11117F]sqlval[/color]([color=#11117F]$id[/color]), 0);
   
[color=#11117F]$arr_products[/color] = [color=#11117F]get_sql_array[/color]([color=#E60000]"SELECT id, prod_title, prod_subtitle,
   prod_short_desc FROM "[/color] . [color=#11117F]PRODUCTS[/color] .
    [color=#E60000]" WHERE id = "[/color] . [color=#11117F]sqlval[/color]([color=#11117F]$arr_products_single_data[/color][[color=#E60000]'prod_id'[/color]]) .
   [color=#E60000]" AND lang_id = "[/color] . [color=#11117F]sqlval[/color]([color=#11117F]$site_lang[/color][[color=#E60000]'id'[/color]]));
                
[color=#11117F]$prod_cat[/color] = [color=#11117F]get_sql_array[/color]([color=#E60000]"SELECT id, prod_cat_title,
   prod_cat_description FROM "[/color] . [color=#11117F]PRODUCT_CATEGORIES[/color] . [color=#E60000]" WHERE id = "[/color] .
   [color=#11117F]sqlval[/color]([color=#11117F]$id[/color]) . [color=#E60000]" AND lang_id = "[/color] . [color=#11117F]sqlval[/color]([color=#11117F]$site_lang[/color][[color=#E60000]'id'[/color]]), 0);

[color=#FFA200]// show each product[/color]
[color=#2B8E10]foreach[/color] ([color=#11117F]$arr_products as $product[/color])
{
   [color=#11117F]$template[/color]->[color=#11117F]set_block[/color]([color=#E60000]'products_overview'[/color], [color=#2B8E10]array[/color](
      [color=#E60000]'IMAGE'[/color] => [color=#FFA200]// <== Hier ;-)[/color]
      [color=#E60000]'TITLE'[/color] => [color=#11117F]$product[/color][[color=#E60000]'prod_title'[/color]],
      [color=#E60000]'SUBTITLE'[/color] => [color=#11117F]$product[/color][[color=#E60000]'prod_subtitle'[/color]],
      [color=#E60000]'SHORT_DESC'[/color] => [color=#11117F]nl2br[/color]([color=#11117F]$product[/color][[color=#E60000]'prod_short_desc'[/color]]),
      [color=#E60000]'PROD_LINK'[/color] => [color=#11117F]$config_main[/color][[color=#E60000]'domain'[/color]] . [color=#E60000]'index.php?page=product_show&amp;id='[/color] .
         [color=#11117F]$product[/color][[color=#E60000]'id'[/color]] . [color=#11117F]$link_lang_param[/color]
      )
   );
}
Ich könnte natürlich auch die SQL-Abfrage für 'prod_img' in die Schleife packen, doch ist das ganze dann nicht mehr so performant, denke ich mal, wenn ich hunderte EInträge in der Datenbank habe. Wie würdet ihr das lösen?
  Mit Zitat antworten Zitat