Wie mysql daten in 2 reihen darstellen?

fuxxor

Mitglied
Hallo,
ich habe eine mysql db mit versch. gegenständen. jeder gegenstand hat eine eigene zeile in der db. ich möchte die gegenstände wie folgt darstellen:

_______________________
|Gegenstand1|Gegenstand5|
|Gegenstand2|Gegenstand6|
|Gegenstand3|Gegenstand7|
|Gegenstand4|Gegenstand8|

und
_______________________
|Gegenstand1|Gegenstand2|
|Gegenstand3|Gegenstand4|
|Gegenstand5|Gegenstand6|
|Gegenstand7|Gegenstand8|

hat jemand ne idee?
 
Hi,

mach 1 Tabelle mit 2 Spalten.

In jede Spalte machst du noch eine Tabelle.

Dann ermittelst du die Anzahl der Einträge in der DB.

Dann machst du eine SQL Abfrage und fragst erst mal die Hälfte
der Daten ab, und zwar mit dem LIMIT Befehl.

Dann die 2. SQL Abfrage, wo du den Rest abfragst.

Nun hast du 2 Ergebnislisten, welche du in die 2 Tabellen
einfügen kannst, und zwar eine Zeile nach der anderen.

Soweit die Thorie - jetzt bist du gefragt ... ;-)

mfg
 
Zuletzt bearbeitet:
PHP:
<table><tr>
<?php
$i=1;

while ($r = mysql_fetch_array($sql))
{
    echo "<td>". $r['gegenstand'] ."</td>\n";

    if (! ($i % 2))
    {
        echo "</tr><tr>";
    }

    $i++;
}
?>
</tr></table>

stellt es folgendermaßen dar:

_______________________
|Gegenstand1|Gegenstand2|
|Gegenstand3|Gegenstand4|
|Gegenstand5|Gegenstand6|
|Gegenstand7|Gegenstand8|


ich habe versucht das script umzuschreiben, so dass es die Daten folgendermaßen darstellt:

Gegenstand1|Gegenstand5|
|Gegenstand2|Gegenstand6|
|Gegenstand3|Gegenstand7|
|Gegenstand4|Gegenstand8|

leider ohne erfolg.

Hat jemand ne idee?
 
ja :)

1. Abfrage mit der Anzahl der Ergebnisse. Diese werden gespeichert in einer Variablen.

2. Abfrage die Ausgabe vorbereiten.

Nun setzt du vor die Schleife die Variable mit dem Ergebnis aus der ersten Zeile, teilst diese durch 2 und setzt das Ergebnis aus der Teilung als Variable in deiner if-Prüfung statt der 2 ein.

Alles andere bleibt.
$i ist das Ergebnis aus der 1. Abfrage
$x = $i /2; wird die Vars für die if in der while.
if (! ($i % $x)) so sieht die korrektur in der if aus.
 
PHP:
<?
$sql = "SELECT * FROM gegenstaende ORDER BY Name ASC";
$result = mysql_query($sql,$db);
$i = mysql_num_rows($result);
?>

<table><tr> 
<?

$xi=$i/2;

while ($r = mysql_fetch_array($result))
{
    echo "<td>". $r['gegenstand'] ."</td>\n";

    if (! ($i % $xi))
    {
        echo "</tr><tr>";
    }

    $i++;
}

?>
</tr></table>

irgendwie will das nicht so ganz... :(
 
Wie wärs mit

PHP:
<?php
$sql = "SELECT * FROM gegenstaende ORDER BY Name ASC";
$result = mysql_query($sql,$db);

echo '<table>';
while ($r = mysql_fetch_array($result))
{
    echo "<tr><td>". $r['gegenstand'] ."</td>\n";
     
     if( $r = mysql_fetch_array($result) )
                 echo '<td>'.$r['gegenstand'].'</td></tr>';
     else
                echo <'td>&nbsp;</td></tr>';
    
     echo "\n";
}

echo '</table>';
?>
 
Hallo zusammen,

ich habe mir das oben mal angeschaut. Das wäre wirklich super, wenn bei mir nicht die Fehlermeldung käme:

Code:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt_filer/lserv/w/e/www.welt-der-menschen.de/feierabend/member_abfrage.php on line 7

Ich habe den Code von oben verwendet. Aber was bedeutet der Fehler auf Deutsch. Ich verstehs nicht, und würde mich deswegen sehr Hilfe freuen.

PHP:
<table><tr> 
<?php 
include ("dbconnect.php");

$i=1; 

while ($r = mysql_fetch_array($sql)) 
{ 
    echo "<td>". $r['name'] ."</td>\n"; 

    if (! ($i % 2)) 
    { 
        echo "</tr><tr>"; 
    } 

    $i++; 
} 
?> 
</tr></table>

Bye und Danke schonmal,

WACSF
 
Zurück