Ergebnis der Abfrage in Array schreiben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ergebnis der Abfrage in Array schreiben

    Hallo,

    ich habe ein Problem meine Oracle-DB-Abfrage in ein mehrdimensionales Array der Form $stoerung[$i]['spaltenname] zu schreiben.

    Hier mein Code:

    PHP-Code:

            $sql 
    "select nummer, datum, statusnr, statustext, meldungdurch, beschreibung, id from web_stoerung";

            if(empty( 
    $conn )) {
                
    $conn ocinlogon($cms_user,$cms_pass,$cms_dbname);
            }
            
    $stmt ociparse($conn,$sql);
            
    ociexecute($stmtOCI_ASSOC);        

            while( 
    OCIFetchInto$stmt$resultOCI_ASSOC)) 
            { 
              
    $stoerung[$i]["id"] = $result["id"]; 
              
    $stoerung[$i]["nummer"] = $result["nummer"]; 
              
    $stoerung[$i]["datum"] = $result["datum"]; 
              
    $stoerung[$i]["statusnr"] = $result["statusnr"]; 
              
    $stoerung[$i]["statustext"] = $result["statustext"]; 
              
    $stoerung[$i]["meldungdurch"] = $result["meldungdurch"]; 
              
    $stoerung[$i]["beschreibung"] = $result["beschreibung"];
              
              
    $id                     $stoerung[$i]["id"];
              
    $nummer             $stoerung[$i]["nummer"];
              
    $datum                 $stoerung[$i]["datum"];
              
    $statusnr         $stoerung[$i]["statusnr"];
              
    $statustext     $stoerung[$i]["statustext"];
              
    $meldungdurch $stoerung[$i]["meldungdurch"];
              
    $beschreibung $stoerung[$i]["beschreibung"];
                           
              echo 
    "hier: $stoerung[$i]['id']";          
              echo 
    "$stoerung[$i]['nummer']";      
              echo 
    "$stoerung[$i]['datum']";       
              echo 
    "$stoerung[$i]['statusnr']";    
              echo 
    "$stoerung[$i]['statustext']";  
              echo 
    "$stoerung[$i]['meldungdurch']";
              echo 
    "$stoerung[$i]['beschreibung']";             
              
              echo 
    "i: $i<br>";
              
              
    $i++; 
            } 
    Es wird nichts ausgegeben ausser die Zählvariable $i.

    Was kann der Fehler sein?

    Danke schonmal,

    Matrixx

  • #2
    mach in der schleife mal print_r($stoerung);

    stimmt die ausgabe?
    wenn ja, solltest du das so machen
    PHP-Code:
    echo $stoerung[$i]['nummer']; 
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      hier ein mysql-beispiel.

      das prizip solltest du auch auf dein oracle anwenden können.

      PHP-Code:
      $sql 'SELECT
                  nummer,
                  datum,
                  statusnr,
                  statustext,
                  meldungdurch,
                  beschreibung,
                  id
              FROM
                  web_stoerung'
      ;

      $s = array(); // stoerungs-array

      $res mysql_query($sql) or die(mysql_error());
      while (
      $row mysql_fetch_assoc($res))
          
      $s[$row['id']] = $row;

      echo 
      '<pre>';
      print_r($s);
      echo 
      '</pre>'
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        @mrhappiness:

        Die Ausgabe von print_r($stoerung):

        Array ( [] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) ) i:
        Array ( [] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) [1] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) ) i: 1
        Array ( [] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) [1] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) [2] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) ) i: 2
        Array ( [] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) [1] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) [2] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) [3] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) )

        Was sagt Dir das jetzt?

        Kommentar


        • #5
          Original geschrieben von Matrixx
          Was sagt Dir das jetzt?
          das z.b. $result["datum"] keinen inhalt aufweisst.

          teste mal bitte meinen code. musste halt noch auf php/oracle umschreiben.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Naja das Problem ist das es für Oracle diese oci-Funktionen zum Abfragen gibt.

            Das Problem ist das ich ja assoziativ abfragen muss so wie du es mit

            mysql_fetch_assoc() tust.

            Hab eben keine Ahnung was das Gegenstück für Oracle ist.

            Kommentar


            • #7
              Hab mir mal mit

              $anzahl = count($stoerung);

              echo "Anzahl $anzahl";

              den Inhalt ausgegeben. Es sind 4 Elemente drin - stimmt denn es sind 4 Datensätze in der DB

              Kommentar


              • #8
                und das funktioniert nicht?

                PHP-Code:
                while (OCIFetchInto$stmt$rowOCI_ASSOC ))
                    
                $s[$row['id']] = $row
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Nein, habe folgendes laufen lassen:

                  PHP-Code:

                          $stoerung 
                  = array(); // stoerungs-array
                          
                          
                  while( OCIFetchInto$stmt$resultOCI_ASSOC)) 
                          { 
                            
                  $stoerung[$i]['id'] = $result['id']; 
                            
                  $stoerung[$i]['nummer'] = $result['nummer']; 
                            
                  $stoerung[$i]['datum'] = $result['datum']; 
                            
                  $stoerung[$i]['statusnr'] = $result['statusnr']; 
                            
                  $stoerung[$i]['statustext'] = $result['statustext']; 
                            
                  $stoerung[$i]['meldungdurch'] = result['meldungdurch']; 
                            
                  $stoerung[$i]['beschreibung'] = $result['beschreibung'];
                            
                  $anzahl count($stoerung);

                            echo 
                  "Inhalt: $anzahl<br>";
                            
                            
                  $stoerung[$result['id']] = $row;
                            
                            
                  print_r($stoerung);
                            
                            echo 
                  "i: $i<br>";
                            
                            
                            
                            
                  $i++; 
                          } 
                  und folgendes Ergebnis:

                  Inhalt: 1
                  Array ( [] => ) i:
                  Inhalt: 2
                  Array ( [] => [1] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) ) i: 1
                  Inhalt: 3
                  Array ( [] => [1] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) [2] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) ) i: 2
                  Inhalt: 4
                  Array ( [] => [1] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) [2] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) [3] => Array ( [id] => [nummer] => [datum] => [statusnr] => [statustext] => [meldungdurch] => [beschreibung] => ) ) i: 3

                  geht also net! :-((

                  Kommentar


                  • #10
                    Re: Ergebnis der Abfrage in Array schreiben

                    naja,

                    PHP-Code:
                            while( OCIFetchInto$stmt$resultOCI_ASSOC)) 
                            { 
                              
                    $stoerung[$i]["id"] = $result["id"]; 
                    laß dir mal per print_r ($result) deren inhalt ausgeben, aber mit den <pre> tags, bitte.

                    wenn du einfach so die var $i einführst, weiß ich nicht, wie das interpretiert wird, mach doch mal vor der schleife ein $i = 0, ....
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      Habe das Problem gelöst!

                      Die Spaltennamen müssen gross geschrieben werden, da diese wahrscheinlich auch in der DB so geschrieben sind:

                      PHP-Code:

                      $stoerung
                      [$i]['id'] = $result['ID'];                                $stoerung[$i]['nummer'] = $result['NUMMER']; 
                      $stoerung[$i]['datum'] = $result['DATUM']; 
                      $stoerung[$i]['statusnr'] = $result['STATUSNR']; 
                      $stoerung[$i]['statustext'] = $result['STATUSTEXT']; 
                      $stoerung[$i]['meldungdurch'] = $result['MELDUNGDURCH']; 
                      $stoerung[$i]['beschreibung'] = $result['BESCHREIBUNG']; 
                      Vielen Dank allen für die Hilfe!

                      Viele Grüße, Matrixx

                      Kommentar

                      Lädt...
                      X