Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Datenbankabfrage in Array

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.07.2000
    Ort
    Weinviertel
    Beiträge
    55

    Datenbankabfrage in Array

    Servus!

    Folgendes Problem könnte mir heute eine schlaflose Nacht bereiten, bitte um Anregungen:

    Ich habe eine Datenbank mit 2 Tabellen (tbl_artikel, tbl_eigenschaften), die ich in ein 3dimensionales Array füttern muss.
    Die Abfrage sieht so aus:
    Code:
    +----+--------+----------+---------+-------+
    | id | bestnr | foto     | groesse | preis |
    +----+--------+----------+---------+-------+
    |  1 | GEB01  | 0001.jpg | 15x7cm  | €6    |
    |  1 | GEB01  | 0001.jpg | 20x10cm | €8    |
    |  2 | OST01  | 0002.jpg | 35x10cm | €20   |
    |  2 | OST01  | 0002.jpg | 50x12cm | €25   |
    |  2 | OST01  | 0002.jpg | 70x20cm | €40   |
    |  3 | OST02  | 0003.jpg | 35x10cm | €23   |
    |  3 | OST02  | 0003.jpg | 50x12cm | €30   |
    |  3 | OST02  | 0003.jpg | 70x20cm | €50   |
    |  4 | OST03  | 0004.jpg | 40x12cm | €28   |
    |  4 | OST03  | 0004.jpg | 60x15cm | €45   |
    |  4 | OST03  | 0004.jpg | 80x20cm | €70   |
    |  5 | OST04  | 0005.jpg | 35x10cm | €20   |
    |  5 | OST04  | 0005.jpg | 50x12cm | €25   |
    |  5 | OST04  | 0005.jpg | 70x20cm | €40   |
    ...
    Rauskommen soll folgendes:
    $kerzen[0][0]['preis'] => €6
    $kerzen[0][1]['preis'] => €8
    $kerzen[1][0]['preis'] => €20
    ...

    Die Daten sollen dann rekursiv mit Smarty ausgegeben werden, das läuft schon soweit. Nur mit den Umbauarbeiten in das Array komm ich nicht weiter. Vor 2 Jahren hab ich das schon irgendwie halbewegs funktionierend im Pfusch hinbekommen, hab dieses Codeschnippsel nicht mehr.
    Ein guter Ansatz würde schon viel weiterhelfen.

    Vielen Dank!

    Grüße, Stefan
    Projekt phpHotspot - (W)Lan Hotspot unter Linux

    Gibt es Fernwartungmöglichkeiten für Windows-Server?
    Na klar! Microsoft Cordless Wheel Mouse :D

  2. #2
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    PHP-Code:
    <?php
    $vid 
    = -1;

    while ( 
    $arrmysql_fetch_array(..)) {

    if (
    $arr['id'] != $vid) {
      
    $count 0;
      
    $vid $arr['id'];
    }
    $kerzen[$arr['id']-1][$count++]['preis']=$arr['preis'];

    }

    ?>

    sowas in der arT?

  3. #3
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    PHP-Code:
    $kerzen[$arr['id']-1][$count++]=$arr
    Ich denke, er möchte dann alle Daten dort haben (kann mich aber auch irren ).

    Kleine Frage noch, was zum Henker ist Smarty?

  4. #4
    Registrierter Benutzer
    Registriert seit
    03.07.2000
    Ort
    Weinviertel
    Beiträge
    55
    Servus!

    @ Markus:
    Danke für den Ansatz, doch bei dir wird nur das erste Array geloopt, in der 2. Dimension happerts ein bisschen.

    Folgender Ansatz funktioniert:
    PHP-Code:
    if($sql_count 0)
       {
          
    $i 0;  // 1. Array
          
    $j 0;  // 2. Array
          
    $temp_id 1;
          
           while(
    $sql_data mysql_fetch_array($sql_result))
           {
           if(
    $sql_data['artikel_id'] == $temp_id) {
              
    $kerzen[$i][$j]['preis'] = $sql_data['preis'];
    //             echo $i . " " . $j . " " . $sql_data['preis'] . " " . "<br>";
              
    $j++;
           }

          else {
              
    $i++;
              if(
    $j <= $sql_data['artikel_id']) $j 0;
              
    $kerzen[$i][$j]['preis'] = $sql_data['preis'];
    //             echo "<b>" . $i . " " . $j . " " . $sql_data['preis'] . " " . "</b><br>";  
             
              
    $temp_id $sql_data['artikel_id'];
              
    $j++;
           }
           }
        } 
    @mehlvogel:
    Smarty ist eine sehr gute und leistungsfähige Template Engine für PHP.
    smarty.php.net

    Vielen Dank für die Hilfe

    Grüße, Stefan
    Projekt phpHotspot - (W)Lan Hotspot unter Linux

    Gibt es Fernwartungmöglichkeiten für Windows-Server?
    Na klar! Microsoft Cordless Wheel Mouse :D

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •