Ankündigung

Einklappen
Keine Ankündigung bisher.

Array ausgeben

Einklappen

Neue Werbung 2019

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

  • Array ausgeben

    Hallo miteinander,
    ich habe ein kleines Problem mit meinem Array.
    Ich mache eine Datenbankabfrage bei einer Suchfunktion und speichere meine Ergebnistabelle in einem Array, damit auch später innerhalb des Arrays sortieren kann und nicht jedesmal ne neue Datenbankabfrage machen muss.
    Allerdings haperts schon bei der ersten Ausgabe.
    hier der Code:
    PHP-Code:
    <?
    $resultarray= array();

    while($data= mysql_fetch_assoc($res)){
          array_push($resultarray, $data);    
    }

    for($i = 0;$i < count($resultarray);$i ++){
          echo "<tr>";
          for($j=0; $j < array_count_values($resultarray); $j++){
            echo "<td>".$resultarray[$i][$j]."<td>";            
          }
          echo "</tr>";
    }//eof for
    ?>
    das problem ist, dass ich einige arrayinhalte in den zeilen formatieren möchte. wie kann ich denn innerhalb einer zeile die einzelnen felder ansprechen? ich möchte zB jedes zweite feld in einer Zeile ansprechen und den Inhalt neu formatieren. Auch sollen nicht immer alle Werte einer zeile ausgegeben werden!
    deshalb hab ich diese variante ausgeschlossen:
    PHP-Code:
    <?
    foreach($resultarray[$i] as $key => $value){
             echo "<td>".$value."</td>";
    ?>
    kann man sich auch innerhalb einer zeile bewegen?
    vielen Dank schon mal!

  • #2
    Was meinst Du mit innerhalb einer Zeile?

    Eventuell zur Vertiefung der Kenntnisse über Arrays:
    http://php-info.org/ftopic35.html

    Und hier mal reinschauen:
    http://www.phpfriend.de/ftopic35038.html
    [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

    Kommentar


    • #3
      Ganz heiss, deine innere Schleife, wenn der erste Eintrag (des äusseren) Arrays genau einmal vorkommt (was sehr wahrscheinlich ist), dann ist die Schleife auch schon zu Ende. array_count_values() wird zum zählen von identischen Einträgen in einem Array verwendet und nicht als Zähler. Ausserdem kannst du einen assozitiven Array nicht einfach mit nummerischen Indizes ausgeben. Das einzig Vernünftige, was übrigbleibt, ist genau die Variante, die du ausschliesst.
      Gruss
      L

      Kommentar


      • #4
        Zitat von Ben
        Was meinst Du mit innerhalb einer Zeile?
        mein array schaut so aus:
        ID
        datum aber im keinem Dateformat, sondern JJJJMMTT als string
        quelle
        ziel
        vorname
        nachname

        da die datenbank schon in betrieb ist und ich nur die suchfunktion basteln soll, will ich nicht das tolle datumsformat ändern, da dann alle anderen scripte ebenfalls geändert werden müssten.

        ich möchte nun in jeder zeile, es sind mehrere Datensätze, das datum in das format "TT.MM.JJJJ" schreiben
        dann soll der vor- und nachname im Format
        "nachname, vorname" ausgegeben werden.
        dazu muss ich doch jedes element in einem datensatz ansprechen.
        mit " foreach" kann ich ja nicht die einzelnen werte bearbeiten. gibts da ne andere lösung?

        Kommentar


        • #5
          Zitat von lazydog
          Ganz heiss, deine innere Schleife, wenn der erste Eintrag (des äusseren) Arrays genau einmal vorkommt (was sehr wahrscheinlich ist), dann ist die Schleife auch schon zu Ende.
          leider wird die schleife benötigt, da es eine suchfunktion ist und teilweise 300 Datensätze zu angegebenen Suchkriterien zu finden sind. daher die äußere for-schleife.

          Kommentar


          • #6
            Re: Array ausgeben

            Zitat von --hEnrY--
            hier der Code:
            Der ist reichlich umständlich.

            Warum nicht so?
            PHP-Code:
            <?php

            print '<table>';

            while(
            $datamysql_fetch_assoc($res))
            {
                print 
            '<tr>';
                foreach(
            $data as $key => $val)
                {
                    
            printf('<td>%s</td>',
                        
            htmlentities($val));
                }
                print 
            '</tr>';
            }

            print 
            '</table>';

            ?>
            EDIT:
            oder so, falls Du zwischen DB Request und dem print noch was anderes erledigen mußt.
            PHP-Code:
            <?php
            $resultarray
            = array(); 

            while(
            $datamysql_fetch_assoc($res)){ 
                  
            $resultarray[] = $data);    


            # irgend was

            $k count($resultarray);

            for(
            $i 0;$i $k;$i ++)

                print 
            '<tr>';
                foreach(
            $resultarray[$i] as $key => $val)
                {
                    
            printf('<td>%s</td>',
                        
            htmlentities($val));
                }
                print 
            '</tr>';

            }
            //eof for 
            ?>

            Kommentar

            Lädt...
            X