# daten in tabelle ausgeben II



## redback79 (4. März 2002)

ich habe eine MySQL datenbank (name=guestbook) in der ich name, vorname, mailadresse, webpage-url, ICQnummer und natürlich den text speichere. weiter habe ich ein feld namens datetime, über welches ich die sortierung der daten vornehme....

das gästebuch läuft eigntlich ansonsten einwandfrei, nur bin ich (wie in meinem letzten beitrag erwähnt! *gg*) mit der rein grafischen ausgabe der daten nicht zufrieden...

ich möchte die daten in der folgenden tabelle ausgeben:


```
<table border="0" width="100%">
  <tr>
    <td width="50%" rowspan="2">Name Vorname:
    <p>Mailadresse:
    <p>ICQ-Nummer:
    <p>Webseite:</td>
    <td width="50%" align="right" valign="top" height="20">Datum:</td>
  </tr>
  <tr>
    <td width="50%" height="*" valign="top">Nachricht ........ bla..bla..bla....</td>
  </tr>
</table>
```

nun, wie bing ich PHP bei, dass es die daten in die tabelle schreibt und dabei soviele felder generiert wie nötig??


kann mir jemand aus der klemme helfen?? bzw. das grundgerüst zur ausgabe der daten liefern?? 

THX

ps. ich habs mit beidem versucht, "reiner PHP" ausgabe und "PHP mixed with HTML"  
ich persönlich fände aber die HTML-verwantere methode besser (..aber vor allem übersichtlicher!)

pps. ...kennt jemand ein gutes tutorial zum thama?


----------



## Morph (4. März 2002)

Ich versuchs einfach mal  (kann dir leider nur wenig code bieten, da ich grad erst anfange mich mit my sql auseinander zusetzen).

Als erstes mal wäre es klug alle verschiedene daten per schleife in einen array zu packen also z.b.
// $max_einträge = die gezählten einträge in dein gb
for ($i=0; $i < $max_einträge; $i++)
{
    $name[] = $name_aus_db
    $url[] = $url_aus_db
}
usw 
Dann würd ich den inhalt, also wieviele einträge dein gb hat - wie auch immer - zählen. Dann machste dir ne billige for-schleife -> for ($zaehler=0; $zaehler < $max_eintraege; $zaehler++)
{
    // hier dann die Tabelle
    // darin dann die Vars in form von
    echo $name[$zaehler];
    echo $url[$zaehler];
    // aufrufen
}

So ... Hoffe mal, dass ich dir wenigstens ein wenig helfen konnte 

Grüße, Morph


----------



## redback79 (4. März 2002)

leider kann ich mit deinem code nicht viel anfangen.. :-(
(d.h ich versteh ihn nur ansatzweise... das ist ja immerhin schon mal etwas...)

ich habe jedoch ein nettes turoial gefunden und versuch mich mal darin! 

THX ANYWAY!!!!!!!!!!!!!


ps. ich hasse es eigentlich anderen leuten auf den sack zu gehn!


----------



## MajinVegeta (5. März 2002)

Hi 

vielleicht hilft dir der code weiter:

```
$abfrage = "SELECT id,name,email,hp,icq,location,msg,datum FROM gb ORDER BY id DESC";


$erg = mysql_db_query("$dbname",$abfrage,$verbindung);


	while (list($id,$name,$email,$hp,$icq,$location,$datum,$msg) = mysql_fetch_row($erg)) {
                echo "
<center>
<table border=1 width=500 bordercolor=002152 cellpadding=0 cellspacing=0>
<tr>
<td bgcolor=002152 width=40% align=left><b>$name</b><br><br><font size=-2><b>$msg</b><br>Wohnort: <b>$location</b></font></td>
<td bgcolor=003163 width=100% align=left>$datum</td>
</tr>
<tr>
<td bgcolor=002152 width=30% align=center>&nbsp;</td>
<td bgcolor=002152 width=80% align=left><a href=\"http://wwp.icq.com/scripts/search.dll?to=$icq\" target=_blank><img src=http://wwp.icq.com/scripts/online.dll?icq=$icq&img=5 width=20 height=20 border=0 alt=Add&nbsp;$name></a>&nbsp;<a href=mailto:$email><img src=gfx/mail.gif border=0></a>&nbsp;<a href=$hp target=_blank><img src=gfx/hp.gif border=0></a></td>
</tr>
</table>
</center>";
}
```

so sieht mein gb aus


----------



## SirNeo (5. März 2002)

Das ganze sollte aber auch mit einer for Schleife funktionieren, im Grunde so wie die while Schleife von MajinVegeta, dann hast du noch die Möglichkeit zu bestimmen wieviele angezeigt werden sollen. Dazu mußt du allerdings die Anzahl der Einträge vorher zählen.


----------



## redback79 (6. März 2002)

*width....*

nach stundenlangem probieren hab ich's zumindest ansatzweise geschafft... *gg*

weiss jemand wesshalb man beim einbinden einer tabelle mit dem parameter width="100%" nichts anfangen kann??

der bringt bei relativen breitenangebn ger keine ausgabe der tabelle!

THX


----------



## redback79 (6. März 2002)

*nl2br*

ach und noch was... 

wie kann ich einen mit folgender echo ausgabe einen "normalen" zeilenumbruch in einen <br> umwandeln???


```
...
echo("<td>nl2br($daten->eintrag)</td>");
...
```


der "frisst" mir mein "nl2br" nicht.... wie sieht da die syntax aus??


----------



## redback79 (6. März 2002)

ich habs jetzt so gemacht:


```
while($daten = mysql_fetch_object($sqlanfrage))     
    {                                                
$datum = getdate($daten->id);         
                
echo("<table border=\"1\"\width=\"400\">");
  echo("<tr>");
    echo("<td>$daten->titel</td>");
  echo("</tr>");
  echo("<tr>");
    echo("<td>Geschrieben am: $datum[weekday] - $datum[mday]/$datum[mon]/$datum[year] um: $datum[hours]:$datum[minutes]</td>");
  echo("</tr>");
  echo("<tr>");
    echo("<td>\nl2br($daten->eintrag)</td>");
  echo("</tr>");
echo("</table>");
echo("<p>");
        
    }
```

scheint mir ein wenig zuviel echo... aber es funktioniert jedenfalls!

ps. das problem mit dem "nl2br" besteht aber leider immer noch...:-(


ich bin für anregungen offen!

THX


----------



## AlexD1979 (8. April 2004)

Ich habe ein ähnliches Problem, weil ich bekomme diese dusseligen Daten nicht in das Array rein, bzw auch nicht mehr heraus 


```
<?
$query  = mysql_query("SELECT INV,TYP,DATE,STATE,SITE,BG,DIVISION,ROOM,SERIAL,MAC,CPUID,APPLICATION,HOST,MANUF,MODEL,CPU,OS,RAM,HDD,Graphics,REMARKS from test_inventar.inventar $condition ORDER BY INV");
  $data=mysql_fetch_array($query);


//Überschriften dynamisch generieren
echo "<tr bgcolor=\"#FFFF00\">";
//Feste Elemente der Überschriften sind INV und TYP
echo "<td align=\"center\">INV</TD>";
echo "<td align=\"center\">TYP</td>";

//Hier werden die Tabellenüberschriften eingefügt, wenn sie denn in der Selektion angegeben wurden!
 for ($i = 0; $i < count($_POST['select']); $i++) { 
 /* for ($i = 0; $i < 5 ; $i++) { */
	if ($_POST['select'][$i] != "") {
		echo "<td>".$_POST['select'][$i]."</td>";
		
	}
} 	
echo "<tr>";
while($data1=mysql_fetch_array($query))

{
	?>
	
	<tr bgcolor="#EFEFEF">
	<td><a href="anzeigen.php?id=<? echo $data1[INV];?>"><? echo $data1[INV]; ?></a></td>

<?
//Diesem Bereich geht folgender input voraus: 
//<td align="right"><input type="checkbox" value="date" name="select[]"></td><td>Date</td>
?>
	
	<?

	if ($_POST[select_host] == "host")
	{
		?>
		<td>
		<? echo $data1[HOST]; ?>
		</td>
		<?
	}
	?>
```



Mein Problem ist nun, sinnvolle Umsetzung zu finden, den untern abschnitt per Array auszugeben ....
Wer weiß da einen Rat ?


----------

