Access-Abfrage komplett in Array schreiben

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

  • Access-Abfrage komplett in Array schreiben

    Hallo,

    ich möchte mit odbc eine Access Datenbank auslesen. Dabei möchte ich ein Array haben, welches mir das Resultat der SQL-Abfrage speichert.
    Auslesen mache ich wie folgt:

    PHP-Code:
     j=1
     
    while (odbc_fetch_row($res$j))
         {
           for (
    $i 1$i <= odbc_num_fields($res); $i++)
           {
             
    $field_name odbc_field_name($res$i);
             
    $ar[$field_name] = odbc_result($res$field_name);
           }
           
    $j++;
           return 
    $ar;
         } 
    Mit diesem Code bekomme ich zwar ein schönes Array (genau, wie es sein soll), allerdings nur eine Datenzeile je Durchlauf.
    Im jeden neuen Durchlauf wird das $ar wieder überschrieben.
    Nun will ich aber alles in einem Array haben. Versucht habe ich schon mit array_merge() und vielen anderen Funktionen.
    Wie bekomme ich es am Besten hin (bin PHP-Neuling)???

  • #2
    statt
    return $ar;
    $array[] = $ar;
    nach der while haste dann in $array alles was Du brauchst
    $array for der Schleife initialisieren...
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      btw sollte $ar = odbc_fetch_row($res) auch gehen dann kannste Dir Deine For schleife sparen
      Beantworte nie Threads mit mehr als 15 followups...
      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

      Kommentar


      • #4
        Hab jetzt folgendes gemacht, ich hoffe Du meintest es auch so.
        Aber leider hab ich in dem Array immer nur die letzte Datenzeile.
        Die for-Schleife kann ich mir glaube nich sparen. Habs zumindest nicht hinbekommen.
        Andere Vorschläge??

        PHP-Code:
        $j=1;
         
        $array[] = array(); 
        while (
        odbc_fetch_row($res$j))
             {
               for (
        $i 1$i <= odbc_num_fields($res); $i++)
               {
                 
        $field_name odbc_field_name($res$i);
                 
        $ar[$field_name] = odbc_result($res$field_name);
                 
        //echo $ar[$field_name] .":&nbsp;&nbsp;&nbsp;";
               
        }
               
        $array[] = $ar;
               
        $j++;
             } 

        Kommentar


        • #5
          PHP-Code:
          $array=array();
          while(
          $row=odbc_fetch_row($res))
            
          $array[]=$row
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            PHP-Code:
            $array = array()
            while(
            $row=odbc_fetch_row($res))

                 
            $array[]=$row;

                 
            print_r(array_values($array)); 
            liefert folgende Ausgabe:

            Array ( [0] => Array ( ) )


            PHP-Code:
            $array = array();

                 while (
            odbc_fetch_row($res$j))
                 {
                   for (
            $i 1$i <= odbc_num_fields($res); $i++)
                   {
                     
            $field_name odbc_field_name($res$i);
                     
            $ar[$field_name] = odbc_result($res$field_name);
                     
            //echo $ar[$field_name] .":&nbsp;&nbsp;&nbsp;";
                   
            }
                   
            $array[] = $ar;
                   
            $j++;
                 }
             
            print_r(array_values($array)); 
            Liefert:
            Array ( [0] => Array ( [Prod_ID] => 1 [Name] => MDA II [Typ] => Hardware ) [1] => Array ( [Prod_ID] => 2 [Name] => Panasonic [Typ] => Hardware ) [2] => Array ( [Prod_ID] => 3 [Name] => TabletPC [Typ] => Hardware ) )


            Hier habe ich
            array[0] = Array(von Produkt1)
            array[1] = Array(von Produkt2) usw.


            Ich möchte aber:
            $array( [Prod_ID] => 1 [Name] => MDA II [Typ] => Hardware )
            $array( [Prod_ID] => 2 [Name] => Panasonic [Typ] => Hardware )

            also nicht Array in Array, sondern so, dass ich es einfach wie eine Tabelle ansprechen kann. Geht das?

            Kommentar


            • #7
              PHP-Code:
              $array = array()
              while(
              $row=odbc_fetch_row($res))

                   
              $array[]=$row;

                   
              print_r(array_values($array)); 
              liefert folgende Ausgabe:

              Array ( [0] => Array ( ) )


              PHP-Code:
              $array = array();

                   while (
              odbc_fetch_row($res$j))
                   {
                     for (
              $i 1$i <= odbc_num_fields($res); $i++)
                     {
                       
              $field_name odbc_field_name($res$i);
                       
              $ar[$field_name] = odbc_result($res$field_name);
                       
              //echo $ar[$field_name] .":&nbsp;&nbsp;&nbsp;";
                     
              }
                     
              $array[] = $ar;
                     
              $j++;
                   }
               
              print_r(array_values($array)); 
              Liefert:
              Array ( [0] => Array ( [Prod_ID] => 1 [Name] => MDA II [Typ] => Hardware ) [1] => Array ( [Prod_ID] => 2 [Name] => Panasonic [Typ] => Hardware ) [2] => Array ( [Prod_ID] => 3 [Name] => TabletPC [Typ] => Hardware ) )


              Hier habe ich
              array[0] = Array(von Produkt1)
              array[1] = Array(von Produkt2) usw.


              Ich möchte aber:
              $array( [Prod_ID] => 1 [Name] => MDA II [Typ] => Hardware )
              $array( [Prod_ID] => 2 [Name] => Panasonic [Typ] => Hardware )

              also nicht Array in Array, sondern so, dass ich es einfach wie eine Tabelle ansprechen kann. Geht das?
              Warum funktioniert odbc_fetch_row nicht?

              Kommentar


              • #8
                so wie du das willst, geht das nicht

                isses so schlimm, wenn du $array[0] bis $array[4711] hast?

                bei ner tabelle musst du ja auch sagen,, welche zeile du haben willst...


                eventuell kannst du das ja so machen (was willst du eigentlich machen? )
                PHP-Code:
                foreach ($array as $zeile)
                  
                print_r($zeile); 
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar

                Lädt...
                X