chichi: immer zwei Datensätze nebeneinander ausgeben...

hallo, ich will einträge einer sql-datenbank auf meiner webseite als table anzeigen zu lassen:

while ($db->next_datensatz())  //funktion steht in functions.php
{
echo "<table mit Datenbankeintrag>...</table><br>\n";
}

liefert:

eintrag 1 <br>
eintrag 2 <br>
eintrag 3 <br>
eintrag 4 <br>
...

ich will aber als ausgabe immer zwei nebeneinander stehen haben:

eintrag 1 eintrag 2 <br>
eintrag 3 eintrag 4 <br>
...

muss ich meine while-schleife mit einem zähler versehen? wie kann ich das bewerkstelligen. komme nicht weiter.
chichi

  1. Moin!

    ich will aber als ausgabe immer zwei nebeneinander stehen haben:

    eintrag 1 eintrag 2 <br>
    eintrag 3 eintrag 4 <br>
    ...

    muss ich meine while-schleife mit einem zähler versehen? wie kann ich das bewerkstelligen. komme nicht weiter.

    Du mußt nicht bei jedem Datensatz ein <br> ausgeben, sondern nur bei jedem zweiten. Das muß logischerweise durch irgendein "Mitzählen" geschehen.

    - Sven Rautenberg

    1. kannst du mir beim zählen mit der schleife helfen?
      chichi

      1. Hello,

        kannst du mir beim zählen mit der schleife helfen?
        chichi

        Du solltest an die Aufgabenstelleung noch mal ganz anders rangehen.
        Grob gesagt:

        • Eingabe
        • Verarbeitung
        • Ausgabe

        Wieviel Datensätze willst Du den immer ausgeben?

        Wie soll das aussehen, was Du ausgeben willst?

        <table>
           <tr>
             <td><?php echo satzausgeben($x); ?></td>
             <td><?php echo satzausgeben($x+1); ?></td>
           </tr>

        <tr>
             <td><?php echo satzausgeben($x+2); ?></td>
             <td><?php echo satzausgeben($x+3); ?></td>
           </tr>

        <!-- ... -->

        </table>

        Mehr enthält Deine Ausgabeanweisung gar nicht und die Generierung der Zeilen wist Du auch noch in eine Funktion verfrachten, die einen Stream (HTML-String) erzeugt, genauso wie es satzausgeben() tun muss.

        Satzausgeben() enthält also selber KEIN "Echo", sondern bauet einen String auf, der auch aus einer eigenen Tabelle bestehen kann.

        Dan erhältst Du eine Tabelle-in-Tabelle-Struktur, die auch als valides HTML durchgehen wird...

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        1. oh, danke! ich denke gerade dass ich folgendes brauchen werde:

          // anzahl der einträge auslesen
          $anzahl=mysql_num_rows($query);

          //zahl auf null setzten
          $zahl=0;
          while ($zahl<$anzahl) {
           $zahlneu=$zahl+2;
           $zahlalt=$zahl;
           if ($zahlneu>$anzahl) {
            $zuviel=$zahlneu-$anzahl;
            $zuviel2=2-$zuviel;
            }

          $tabelle.="\n<table align="center" cellspacing=2>\n<tr valign="top">";
          $tabelle.="<td width="100"></td>";

          while ($zahlneu>$zahlalt && $zahlalt<$anzahl) {
          $tabelle.="\n<td width="100">".$namen[$zahlalt]."</td>";
          $zahlalt++;
          }

          if ($zuviel)
          $tabelle.=leereSpalte($zuviel);
          $tabelle.="\n</tr>\n<tr>";
          $tabelle.="<td width="100"></td>";

          if ($zuviel2)
          $zahlalt-=$zuviel2;
          else
          $zahlalt-=2;

          oh jezt wird es immer komplizierter ... geht das auch einfacher?
          chichi

          1. Hello,

            oh jezt wird es immer komplizierter ... geht das auch einfacher?

            Ja, das geht einfacher, in dem man sich an folgende Regel hält *gg*:

            • Eingabe
            • Verarbeitung
            • Ausgabe

            Mach Dir soch ale erstes mal Gedanken darüber, wie das, was Du ausgeben willst, aussehen soll. Du eillst doch bestimmt gleich die nächste Frage stellen: "Wie kann man man durch mehrseitige Ausgaben blättern?"

            Also lege estmal Dein Ausgabe-Design fest.
            Das kannst Du statisch machen, oder auch dynamisch oder Du schiebst die Enstscheidung vor Dir her, indem Du eine Funktion daraus machst. Dann brauchst Du die später nur zu ändern, und schon funktioniert es so, wie es dienstags funktionieren soll und wenn Sonntag ist, macht die Funktione ben was anderes. Hast Du verstanden, was ich damit meine?

            Die Datenmenge wird durch verschiedene Kriterien beeinflusst:

            • Anzahl der vorhandenen Datensätze
            • Anzahl der Datensätze im Filterbreich
            • Anzahl der Datensätze, die auf eine Seite passen
            • ...

            Du solltest also erst mal eine solide Planung machen und Bilder malen, was Du eigentlich haben willst. Dann bleibt es einfach. Und immer, wenn man denkt, es würde jetzt kompliziert, erstellt man sich eine neue Funktion mit genau definierten Rückgabewerten und Fehlerwerten, die man natürlich auch auswerten muss.

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen