# mysql Ausgabe nebeneinander zwei spalten



## Shooter2k (11. November 2003)

Hallo , ich habe da ein kleines Problem. Und zwar möchte ich datensätze nebeneinander ausgeben. Ich habe also 2 Spalte in bei 10 Namen sollen in der einen spalte links 5 stehen und rechts 5 .
Wie kann ich das umsetzen? Ich habe schonmal die Summe alle Datensätze gebildet mit :


```
include ("verbindung.php");

$result = mysql_query("SELECT Count(*) FROM dh_mem"); 

while ($myrow = mysql_fetch_row($result)) { 
$myrow[0] = $anz;

echo $anz;
}
```

Aber nun weis ich nicht weiter.. Und falls es eine ungerade Zahl ist mit dem Rest zB 9 / 2 = 4,5 ..

Kann mir jemand behilflich sein  ?

DANKE !


----------



## Fabian H (11. November 2003)

Hm, vielleicht so:

```
<?php
$iResult = mysql_query("SELECT `eintrag` FROM `tabelle`;");
$iMid = round(mysql_num_rows($iResult) / 2);

?>
<table border="0">
    <tr>
        <td>
            <?php
            $iCount = 1;
            while($aInfo = mysql_fetch_array($iResult);
                if ($iCount == $iMid) {
                    echo "</td></tr><tr><td>";
                }
                echo $aInfo['eintrag']."<br>";

                $iCount++;
            }
            ?>
        </td>
    </tr>
</table>
```

ungetestet


----------



## Shooter2k (11. November 2003)

*geht alles nicht*

Danke für deine Antwort .. ich habe es fast .. irgendwas stimmt nur mit den tr's und td's nicht..

Hier nochmal dein code .. habe kleine fehler bearbeitet.


```
<?php
include ("verbindung.php");
$iResult = mysql_query("SELECT vname FROM dh_mem;");
$iMid = round(mysql_num_rows($iResult) / 2);

?>
<table border="1">
    <tr>
        <td>
            <?php
            $iCount = 1;
            while($aInfo = mysql_fetch_array($iResult))
              {
			    if ($iCount == $iMid) {
                    echo "</td></tr><tr><td>";
                }
                echo $aInfo['vname']."<br>";

                $iCount++;
            }
            ?>
        </td>
    </tr>
</table>
```

Das Ergebnis ist hier hier ! 

Wenn ich mir dann den HTML code ansehe, dann stimmt da was nicht. 
Mein kopf ist nur so voll und ich raff nix mehr..
Kannst du mir weiter helfen?


----------



## Fabian H (11. November 2003)

Ich Trottel, es liegt daran, dass er gleich noch ne neue Zeile anfängt, er soll ja bloß ne neue Spalte anfangen 

Du musst die Zeile:

```
echo "</td></tr><tr><td>";
```
und die hier ändern:

```
echo "</td><td>";
```

Und da fällt mir gerade nochwas auf: Wenn genau zwei Ergebnisse geliefert werden, dann wird erst eine leere Spalte erzeugt, und dann alles in die zweite geschrieben, allegemein wird in die zweite automatisch immer ein Eintrag mehr (glaub ich) geschrieben.
Nächster Schritt wäre also, erst den Eintrag, und dann ggf. den Spalten-wechsel auszugeben:

```
#Comment nur zum Layout (wird wohl trim benutzt), kann gelöscht werden
                echo $aInfo['vname']."<br>";
                if ($iCount == $iMid) {
                    echo "</td></tr><tr><td>";
                }
```

hth


----------



## hoizwurm (11. November 2003)

Hallo!

Also ich habe das bei mir folgendermaßen gelöst:

Ganz normale Abfrage, Ausgabe über eine Schleife und in dieser Schleife einen Zähler mitlaufen lassen. Je nachdem welchen Wert der Zähler hat, einfach nur die Zelle schließen und den Zähler um 1 erhöhen oder wenn der Zähler einen anderen Wert hat, dann die Zelle und die Zeile schließen, eine neue Zeile anfangen und den Zähler auf den Anfangswert zurücksetzen.

Habe dir ein Codeschnippsel angehängt zum anschauen.


```
@$outcome=mysql_query("select * from linkexcatalog where parentid='$catid' order by catalogid");
	require("../news/admin/failure.php");
	?>
	<table align=center>
	<tr>
	<?

	$zaehler=1;
	while ($access=mysql_fetch_array($outcome))
		{
        	$catalogid=$access["catalogid"];
			$catalogname=$access["catalogname"];
			$description=$access["description"];
		echo "
		<td width=200 valign=top>
			<table border=0>
				<tr valign=top>
					<td>
						<IMG height=10 src=\"images/punkt.gif\" width=10>
					</td>
					<td>
						<A href=\"index.php?action=links&zeigen=links&catid=$catalogid\"><b>".$catalogname."</b></A>
					</td>
				</tr>
				<tr>
					<td>&nbsp;</td>
					<td>
						".$description."
						<br><br>
					</td>
				</tr>
			</table>";
	
	if ($zaehler=="1") 
		{
		echo "</td>";
		$zaehler++;	
		}
	
	else {
		echo "</td></tr><tr>";
		$zaehler=1;
		}
		
}

?>
</table>
```

mfg Hoizwurm

Sorry, du hast was anderes gemeint. Habe irgendwie da drüber gelesen.
mfg Hoizwurm


----------

