Wie ist es machbar

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

  • #16
    ich weiß ja nicht, wie deine tabelle aussieht, aber wenn du überschrift und text in einem datensatz einer tabelle speicherst, dann reicht dir zeilenweise, poste einfach mal etwas code, der erkennen lässt, was du versucht hast und: ja, deine tabellenstruktur ist von interesse [/B]

    Die Tabelle ist simpel aufgebaut:

            Spalten
            Überschrift        Text
    Zeilen Überschrift 1    Text1

    Kommentar


    • #17
      vereinfachte darstellung ....

      Code:
      <table>
      
      <tr>
      
      SELECT
      
      WHILE-FETCH
      {
          echo <td> .... </td>
          if mod 2 echo echo </tr><tr>
      }
      
      </tr>
      
      </table>
      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


      • #18
        Original geschrieben von mrhappiness
        als anregung
        PHP-Code:
        while ($row mysql_fetch_assoc($ergebnis)) {
          
        $heading[] = $row['zahl'];
          
        $body[] = $row['text'];
        }
        echo 
        '<pre>';
        print_r($heading);
        print_r($body);
        echo 
        '</pre>'
        Danke werde ich morgen mal testen, heute hätte das glaube ich noch wenig Sinn.

        Kommentar


        • #19
          Ich bin´s wieder

          Hallo,

          also wie ich das ganze nun so programmieren muss, dass das ganze Spaltenweise ausgegeben wird und ich dann quasie zwei Zeilen habe weiß ich nun (glaube ich zumindestens).

          Dies dürfte ja mit folgendem Code zu bewältigen sein:

          PHP-Code:

          $x 
          = array( "1""2""3""4""5""6""7""8""9""10");
          $count count$x );
          $spalten 2;
          $zeilen = ( $count $spalten )?( ( $count - ( $count $spalten ) ) / $spalten ):$count $spalten
          In diesem Code wird ja nichts anderes errechnet als wieviele Spalten und dem zufolge wie viele Zeilen es benötigt um den Inhalt des Arrays wie gewünscht in 2 Spalten auszugeben.

          Nun habe ich noch folgendes Problem, wo ich nicht so recht weiterkomme:

          Um nun die Daten aus der MYSQL-Datenbank zu holen benötige ich ja den Verbindungsaufbau der meines erachtens noch vor dem Array stattfindet.

          Dann schreibe ich mit Hilfe der while-Schleife den Inhalt der Tabelle in ein Array. Das sähe dann so aus:

          PHP-Code:
          $verbindung mysql_connect("","","");
          mysql_select_db("url");
          $abfrage ="SELECT * FROM zeilen";
          $ergebnis mysql_query($abfrage);
          while(
          $row mysql_fetch_object ($ergebnis))....... 
          Demnach müsste ja nur das Array den Namen [COLOR=orange]row[/color] haben??

          [COLOR=blue]Nun die erste Frage:

          bei erst genanntem Code wird ja der Inhalt des Arrays in die Variable [COLOR=orange]X[/color] und anschließend mit count gezählt.

          Wie muss ich es jetzt anstellen, dass er anstelle des Arrays die Daten der Datenbank zählt? Wenn ich anstelle des X [COLOR=orange]ergebnis[/color] angebe gehts nichts (oder ich mache es falsch)?? [/color]

          [COLOR=red]Jetzt die zweite Frage:
          Mit diesem Code wird ja nun der Inhalt von [COLOR=orange]x[/color]
          ausgegeben und gleichzeitig die Zeilen und Spalten hochgerechnet?? (Wenn ich den Code richtig intepretiere)

          PHP-Code:
          echo "<table>\n";
          // Zeile für Zeile
          for( $i 0;$i $zeilen; ++$i ) {
              echo 
          "\t<tr>\n";
              
          // Spalte für Spalte
              
          for( $ii 0;$ii $spalten; ++$ii ) {
                  
          // wenns nichts mehr gibt, ein &nbsp;
                  
          echo "\t\t<td>" . ( isset( $x[$ii $zeilen $i] )?$x[$ii $zeilen $i]:"&nbsp;" ) . "</td>\n";
              }
              echo 
          "\t</tr>\n";
          }
          echo 
          "</table>"
          Benötige ich nun um die Spalten Zahl und Text auszugeben zwei Durchläufe und wie muss ich die Daten ausgeben
          [COLOR=orange]$row->Zahl[/color] anstelle [COLOR=orange]x[/color]???[/color]

          Fragen über Fragen

          Sollte ich was falsch verstanden habe bitte korrigieren, ich bin noch in der Lernphase.

          Gruß

          Tobias

          Kommentar


          • #20
            Das habe ich, vielleicht kannst Du es gebrauchen und anpassen

            PHP-Code:
            function get_tr($array,$tdperrow,$elsestring) {

            SORT($array);
             
            $last COUNT($array);
              
            $lastitem end($array);
               
            $tds $tdperrow;
                
            $colorscheme 0;

                
            $style "style=\"width:".CEIL(100/$tds)."%; height:26;\"";

             if ( 
            $last >= ) {
              
            $i=0;

             foreach ( 
            $array as $var ) {
                
            $i++;
                
            $colorscheme++;
                
            $color $colorscheme ?  "class='def1'" "class='def2'";
                
                if ( 
            $i%$tds == $ausgabe[] = '<tr '.$color.'><td '.$style.'>'.$var.'</td>';
                else 
            $ausgabe[] = '<td '.$style.'>'.$var.'</td>';
                if ( 
            $i%$tds == || $var == $lastitem$ausgabe[] = '</tr>';
               }

             }

             else { 
            $ausgabe[] = "<tr class='def2'> <td>".$elsestring."</td></tr>"; }

             return 
            implode('',$ausgabe);



            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
            sondern mit den Augen das Manual zu lesen.

            Kommentar


            • #21
              Danke für die Hilfe, bin nun ein Stückchen weiter gekommen.

              Es geht langsam voran.

              Kommentar


              • #22
                lesen und tüffteln

                Hallo,

                ich habe mich belesen gemacht und das ganze versucht umzusetzen und bin wieder ein Stückchen weiter gekommen (langsam nähert sich der Anfänger dem Ziel )

                So nun habe ich noch ein Problem, nachdem ich mir die Mühe gemacht habe und den Code hier auseinander genommen habe um zu sehen was überhaupt passiert. Was wie ich ehrlich zugebe sehr sehr hilfreich war.

                [php]
                for( $i = 0;$i < $zeilen; ++$i ) {
                echo "\t<tr>\n"; [\php]

                Der Startwert von $i = 0 Die Schleife wird so lange durchlaufen und der Wert von $I um ein erhöht wie $I kleiner der Variablen $Zeilen ist.

                PHP-Code:
                    for( $ii 0;$ii $spalten; ++$ii ){ 
                Das gleiche wie oben.

                PHP-Code:
                echo "\t\t<td>" . ( isset( $x[$ii $zeilen $i] )?$x[$ii $zeilen $i]:"&nbsp;" ) . "</td>\n";
                    }
                    echo 
                "\t</tr>\n";
                }
                echo 
                "</table>"
                grob gesagt wir hier das jeweilige Array berechnet und entsprechend ausgegeben [color=blue]$x[$ii * $zeilen + $i][/color] = z.b. $x[5]

                nun meine Frage, wenn die Daten nicht aus einem Array sondern aus einer Datenbank kommen werden die Daten ja rein theorethisch mit Hilfe einer while Schleife solange wie Daten vorhanden sind aus der Datenbank geholt.

                Wie kann ich nun die while Schleife in die for Schleife einbauen?

                Kommentar


                • #23
                  Ich komm nicht weiter

                  Hallo,

                  also irgendwie drehe ich mich im Kreise und komm nicht weiter. Das das erlernen von PHP keine leichte Sache wird war mir klar, aber dass ich an so einem Problem so lange (mittlerweile schon fast ne Woche) dachte ich nicht. Ich hätte zwar schon ne Lösung wie ich es ebenfalls machen könnte, nur geht es mir jetzt ums Prinzip.

                  Hätte noch jemand eine Idee bzw. nen Vorschlag.

                  Gruß

                  Kommentar

                  Lädt...
                  X