Ankündigung

Einklappen
Keine Ankündigung bisher.

mehrdimensionales Array mit Daten aus einer DB füllen

Einklappen

Neue Werbung 2019

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

  • mehrdimensionales Array mit Daten aus einer DB füllen

    hallo miteinander,

    habe folgendes Problem:

    wenn ich das Array fest codiere funktioniert es
    Code:
    $param_d['highlight']= array('20050101' => 'Eintrag1', '20050105' => 'Eintrag2');
    Doch möchte ich gerne das Datum und den Eintrag aus einer Datenbank heraus generieren. Die Daten auslesen aus der Datenbank funktionert, aber wie kriege ich diese Daten in das Array?
    Folgendes habe ich versucht:

    Code:
       include("../../func/open.inc.php");
       $table = "tab_aktuelles";
       $search = "startdatum, was";
       $where = "(internetfreigabe<>0) AND (id_artFK='1')";
       @mysql_select_db ($dbase) or  die ("Kann Datenbank nicht finden");
       $result = mysql_query("SELECT $search FROM $table WHERE $where", $conn);
       $num = mysql_num_rows($result);
       if ($num<=0) {
          //Keine gefunden
          $param_d['highlight'] = array();
       }
       else {
          //Daten in array füllen
          while($row  =  mysql_fetch_row($result))  {
             //umwandeln des Datums
             $datum = date("Ymd",strtotime($row['startdatum']));
             $anl = $row['was'];
             //ins array schreiben
             $param_d['highlight_type'] = array_push($param_d['highlight_type'],array($datum,$anl));
          }
       }
    und folgende Fehlermeldung erhalten:
    Warning: array_push(): First argument should be an array

    hoffe es kann mir jemand helfen?
    besten dank schon mal.

    grüsse
    alex

  • #2
    Die Fehlermeldung sagt nichts anderes aus, als dass $param_d['highlight_type'] kein Array ist. Ich sehe aber auch nirgendwo, dass diese Variable als Array deklariert wurde, bzw. das passiert nur, wenn es keine Treffer in der DB gab.

    Gruß
    phpfan

    Kommentar


    • #3
      Treffer gibt es in der DB, dashabe ich einerseits direkt mit phpmyadmin abgefragt und im Code noch abgefangen mit
      Code:
      if ($num<=0) {
      oder?

      Vielleicht ist mein Syntax für das abfüllen der Daten ganz falsch? Denn was ich möchte, ist anstatt der fest codierten Datum=>Eintrag jeweils den Inhalt der Variablen $datum=>$anl im $param_d['highlight'] drin haben.

      gruss alex

      Kommentar


      • #4
        $param_d['highlight'] = array(); musst auf jeden Fall machen, egal ob Treffer oder nicht.

        Gruß
        phpfan

        Kommentar


        • #5
          Habe das $param_d['highlight'] = array(); vor der if-Abfrage eingefügt, jedoch bleibt die Fehlermeldung gleich.

          gruss alex

          Kommentar


          • #6
            Ahhh, bin ich blind. Du benutzt array_push falsch, siehe http://de3.php.net/manual/de/function.array-push.php Die Funktion liefert einen Int-Wert und somit zerschießt du $param_d['highlight_type']

            array_push($param_d['highlight_type'],array($datum,$anl));

            Die Initialisierung solltest du aber trotzdem drin lassen.

            Gruß
            phpfan

            Kommentar


            • #7
              Danke die Fehlermeldung ist weg

              Doch irgendetwas ist immer noch falsch. Wenn ich nach dem Einlesen das Array ausgebe mit
              Code:
              foreach ($param_d['highlight'] as $key=>$value){
                   echo "$key-$value
              ";
                }
              erhalte ich folgendes:
              0-Array
              1-Array
              2-Array
              3-Array
              4-Array
              ....

              statt

              20040924-Konzert
              20041115-Meeting

              irgendwie liest es etwas falsches ins array rein?

              gruss alex

              Kommentar


              • #8
                Was erwartest du bei

                array_push($param_d['highlight_type'],array($datum,$anl));

                Du schiebst ein Array rein und bekommst ein Array raus, alles richtig. $value ist dann auch ein Array.

                Gruß
                phpfan

                Kommentar


                • #9
                  Jetzt steh ich glaub auf der Leitung....

                  wie bekomm ich die richtigen Werte in $param_d['highlight'] rein??

                  gruss alex

                  Kommentar


                  • #10
                    PHP-Code:
                    foreach ($param_d['highlight'] as $data)
                    {
                       
                    $p 1;
                       foreach (
                    $data as $value
                       {
                         echo 
                    $value;
                         if (! (
                    $p 2))
                           echo 
                    "
                    "
                    ;
                         else
                           echo 
                    " - ";

                         
                    $p++;
                       }  

                    Gruß
                    phpfan

                    Kommentar

                    Lädt...
                    X