schleifen probleme

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

  • schleifen probleme

    hi.

    habe ein kleines problem(sonst wär ich wohl auch nicht hier ). ich habe es schon versucht alleine zu lösen aber komme leider nicht drauf wie ich es bewerkstelligen soll. bin auch kein totaler newb in sachen php aber hier stecke ich jetz gerade einfach und ja ich denke mir es gibt sicher eine kleine, feine und elegante lösung für mein problem.

    ich werde nun kurz den tatbestand darstellen (verkürzt und nur auf das eigentliche problem beschränkt):

    ich habe daten in einer sql db gespeichert. nun will ich diese daten einfach ausgeben. normalerweise mache ich eine einfache ausgabe aus einer datenbank so:

    PHP-Code:
    $sql "SELECT * FROM `db`"
    $result mysql_query($sql); 

    while (
    $m_fetch mysql_fetch_object($result)) { 
      echo 
    "{$m_fetch->feldname}<br />"

    nun will ich aber eine etwas andere ausgabe und zwar etwa so:

    PHP-Code:
    $sql "SELECT * FROM `db`"
    $result mysql_query($sql); 

    while (
    $m_fetch mysql_fetch_object($result)) { 
      echo 
    "{$m_fetch->feldname} -"
      echo 
    "{$m_fetch->feldname} -"
      echo 
    "{$m_fetch->feldname} <br />"

    also ich würde gerne immer drei daten nebeneinander haben und dann danach erst wieder drei daten darunter. anstatt jeden datensatz untereinander.

    jedoch in diesem letzten geposteten falle wüde er ja jeden datensatz dreimal ausgeben und dass so oft wie daten in der db vorhanden sind.

    das heißt auf den nenner gebracht ich würde der while schleife gerne sagen das es (z.b. bei 6 einträgen) die schleife nur zweimal machen soll und aber in den jeweiligen schleifenzügen die variable hochzählen soll.

    hmm hoff hab das irgendwie verständlich ausgedrückt.

    normalerweise mache ich bei solchen problemen ja eine for schleife jedoch komme ich so dann nicht an die daten aus der db bzw. ich bin mir nicht ganz sicher wie.

    gedacht habe ich mir z. b. sowas:

    PHP-Code:
    $sql "SELECT * FROM `db`"
    $result mysql_query($sql); 
    $m_fetch mysql_fetch_object($result); 
    $picture_id 1
    $end_id mysql_num_rows($result);

    for (
    $i 1$i < (ceil($end_id 3) + 1); $i++) { 
      echo 
    "{$m_fetch->feldname1datensatzi} -"
      echo 
    "{$m_fetch->feldname1datensatzi++} -"
      echo 
    "{$m_fetch->feldname1datensatzi++} <br />"

    also ich will wirklich sowas wie eine kombinierte for und while schleife.
    das for für immer drei nebeneinander und das while weil es so alle daten aus der db holt.

    kann mir da jemand helfen? hoffe habe mich verständlich ausgedrückt.


    danke schonmal!
    mfg stefan

  • #2
    Such mal nach Spaltenweise oder Zeilenweise in Verbindung mit "Modulo".

    Du kannst dein ergebnis einfach wir gehabt (immer eine Zeile) ausgeben. Nur dass du bei jedem schleifendurchlauf prüfst, ob sie die anzahl der bisher ausgegebenen Datensätze (lasse einen Zähler mitlaufen) durch 3 Teilen lässt. Wenn dem so ist, dann druckst du einfach einen Zeilenumbruch. Wenn nicht, dann nicht.

    normalerweise mache ich bei solchen problemen ja eine for schleife jedoch komme ich so dann nicht an die daten aus der db bzw. ich bin mir nicht ganz sicher wie.
    Ist sicher auch eine Möglichkeit. Hier müsstest du dann aber die gesamten Daten in einem Array zwischenspeichern.

    also ich will wirklich sowas wie eine kombinierte for und while schleife.
    Nee, willst du nicht.

    kann mir da jemand helfen? hoffe habe mich verständlich ausgedrückt.
    Ja, tausend mal besser als "ich mach das und das, aber es funzt nicht". Danke und Herzlich willkommen!

    Kommentar

    Lädt...
    X