Daten aus DB auslesen und nach der Hälfte der Anzahl von Daten einen Umbruch

diggakool

Mitglied
Moin,

ich möchte eigentlich einfach nur Daten aus der Datenbank lesen und diese dann wenn die Hälfte aller Datensätze erreicht ist, einen Umbruch machen damit es zwei Zeilen werden.

Also so:
Datensätze insgesamt: 8

Zeile 1: Datensatz 1 || Datensatz 2 || Datensatz 3 || Datensatz 4 ||
Zeile 2: Datensatz 5 || Datensatz 6 || Datensatz 7 || Datensatz 8 ||

Kann mir jemand einen Denkanstoss geben was da das sinnvollste und beste ist?
Evtl. mit mysql_num_rows und count?

Viele Grüße
 
Hallo,

angenommen du hast eine Schleife, welche alle Datensätze durchläuft und hast die Anzahl aller zurückgegebener Datensätze:
PHP:
for ($i=0; $i<$count; $i++) {
  if ($i <= $count/2) {
    // ...
  }
}

Wenn du nur ein bestimmtes Attribut oder das Attribut class anders bei der HTML-Ausgabe setzt, würde ich die obere Lösung nehmen.
Hast du jedoch grundlegende Unterschiede, dann wäre [phpf]array_chunk[/phpf] sauberer:
PHP:
$chunks = array_chunk($datasets, count($datasets)/2, true);

PS: [phpf]mysql_num_rows[/phpf] solltest du schon mal gar nicht verwenden, da die MySQL-Erweiterung veraltet ist. Entweder den Weg über PDO oder über MySQLi (mit [phpf]mysqli_num_rows[/phpf]) nehmen.
 
Hi,

wenn du die Ergebnisse von der DB holst, dann iterierst du ja Eintrag für Eintrag da durch. Hier lässt du einen Zähler mitlaufen und sobald dieser bei der Hälfte der Einträge ist (ja, mysql_num_rows()) kannst du einen Umbruch einfügen.

Übrigens: Ich weiß, dass ich auf eine Deprecated Funktion verweise. Falls du mit mysqli oder Prepared Statements arbeitest (würde ich dir auf alle Fälle empfehlen), dann kannst du die entsprechenden Pendents zu der Funktion verwenden.

Grüße,
BK
 
Danke schon mal euch beiden. :)

Also das hier ist zur Zeit mein Code:
PHP:
<?php
    $get_pics = "
        SELECT user.*, user_uploads.* FROM 
            user 
        LEFT JOIN
            user_uploads
            ON user_uploads.user_id_fk = user.user_relcode
        where 
            user.user_live='Y'
        and 
            user_uploads.image_name!=''
        "; 
    $get_pics = mysql_query($get_pics) or die("Ihre Anfrage (Fehlercode: db_gp_00001) war leider nicht erfolgreich!");    
    
    while ($get_pics_list = mysql_fetch_array($get_pics)): ?>

<img src="image_<?php echo $get_pics_list[image_name]; ?>" />                                                                                                   

<?php endwhile; ?>

kann ich dann die For-Schleife einfach in die While-Schleife unter das Bild legen oder sehe ich das falsch?

PHP:
<?php for ($i=0; $i<$count; $i++) {
  if ($i <= $count/2) {
      echo "<br />";
    }
}  
?>
 
Zurück