Datenübergabe aus array an Tabelle

didek

Grünschnabel
Hallo zusammen,

komme einfach nicht weiter........

ich habe folgende Abfrage
PHP:
	$sql_statement= "SELECT userid_comm,comment,user FROM blog_comment  WHERE userid_comm = '$user_id' ";
	$resultset=mysql_query($sql_statement);
while($data=mysql_fetch_array($resultset))
{
	echo "
<table>
	<tr><td>".$data[comment_user]."</td></tr>
        <tr><td>".$data[comment]."</td></tr></table>
	";
}
das für sich alleine funktioniert auch (er macht eine Tabelle mit 2 Zeilen und zeigt mir zur Zeit alle 4 Einträge die Vorhanden sind an)

nun möchte ich diese Daten an einer anderen Stelle auf einer Webseite wieder ausgeben
nur das es sich jetzt nicht um eine Table handelt sonder um ein DIV und das die Daten nun....über die ganze Webseite verstreut angezeigt werden..... auch bei einer Tabelle...er mach also für jeden vorhandenen Datensatz eine neu Tabelle bzw. ein neues DIV ....

wie bekomme ich das in den Griff********

danke für euer Hilfe
Didek
 
Also, mit dem while() gehst du die Zeilen durch. Ergo muss der <table></table> Tag ausserhalb der while liegen
PHP:
echo "<table>";
while($data=mysql_fetch_array($resultset)){
    echo "<tr><td>".$data[comment_user]."</td></tr>
        <tr><td>".$data[comment]."</td></tr>";
}
echo "</table>";
 
Hallo Yaslaw,
danke für deine Nachricht aber so meinte ich das nicht.......


ich möchte die Daten nicht als einfaches Echo wiederausgeben, sondern an einem bestimmten Punkt des ganzen Scriptes

z.B:

PHP:
 $sql_statement= "SELECT userid_comm,comment,user FROM blog_comment  WHERE userid_comm = '$user_id' ";
    $resultset=mysql_query($sql_statement);
while($data=mysql_fetch_array($resultset))
{
   $ausgabe =" ".$data[comment]." ";
}

.....
......
........irgendwo im Script
PHP:
<div>$ausgabe</div>

auch das bekomme ich auf die reihe.........

was ich nicht hinbekomme ist, da es sich dabei um ein array handelt und die Ausgabe als $ausgabe nicht alle Datensätze anzeigt die Vorhanden sind....sondern immer nur den letzten...und wenn er alles anzeigt, dann finde ich für jeden Datensatz einen neuen DIV .....
was ich aber so nicht haben will........
wie bekomme ich es hin das dieses array an anderer Stelle verfünftig wieder ausgegeben wird?

Dank für eure Mühe
didek
 
Dann solltest du das Resultat in einen 2 dimensionalen Array schreiben
PHP:
//Array initialisieren
$table = array();
while($row=mysql_fetch_array($resultset)){
    //Die einzelnen Zeilen in den Array abspitzen. Zeile 1 hat so die ID 0
    $table[] =$row;
} 

//irgendwo im Script den comment der 3ten Zeile ausgeben (Index beginnt bei 0!)
echo $table[2]['comment'];

//oder als ganze Tabelle
echo "<table>";
foreach($table as $row){
    echo "<tr><td>{$row['comment_user']}</td><td>{$row['comment']}</td></tr>";
}
echo "</table>";
 
Hallo zusammen,

@Yaslaw, danke für deine Mühe und Hilfe....


aber ich komme zum verrxxxxx nicht weiter......

ich habe mal ein Bild von der ganzen Sache gemacht

Unbenannt-1.jpg

das ist meine Ausgangssituation.....

ich habe zwei Tabellen

Tabelle1
id (INT14) -> AUTO_INCREMENT (bei Eintrag wird eine Id vergeben)
user (INT14) -> Name des Users/Webseite
message -> Inhalt des Eintrages
date -> Tag des Eintrages
status -> bei Neueintrag so wie Eingestellt (Online, Offline so wie der User es haben will)
entry -> bei Neueintrag autom. Neu

Tabell2
id (INT14) -> AUTO_INCREMENT (bei Eintrag wird auch hier eine Id vergeben)
userid_comm (INT14) -> id aus tabelle1
comment -> hier kann jeder Seitenbesucher einen Kommentar schreiben

soooo.....

nun möchte ich wie oben im Bild zu sehen......
auf der Seite Tabelle1
die Einträge zeigen die der User (z.B. User1) gemacht hat......

auf der SeiteTabelle2
die dazugehörigen Einträge der Webseitenbesucher anzeigen (diese aber als Liste im Feld Comment) nicht so wie er das im Moment macht...für jeden Eintrag eine neue Zeile

die Abfrage die ich dazu erstellt habe sieht wie folgt aus:
PHP:
$result = mysql_query ('SELECT  T1.*, T2.comment, T2.comment_user, T2.userid_comm,  DATE_FORMAT(T1.date, "%d.%m.%Y, %H:%i") as DatumFormatiert  FROM  blog T1, blog_comment T2 WHERE T2.userid_comm= T1.id '); 
while($row = mysql_fetch_array($result)){
    //Die einzelnen Zeilen in den Array abspitzen. Zeile 1 hat so die ID 0
$table[] =$row;
foreach($table as $row){
$user = $row['comment_user'];
$comment = $row['comment'];
}
$published = ($row['status'] == Online) ? "<span style=\"color:green;\">{$row['status']}</span>" : "<span style=\"color:#FF6633;\">{$row['status']}</span>";
		$eintrag1 = ($row['entry'] == Neu AND ($row['status'] == Online)) ? "<span style=\"color:red;font-weight:bold;\">{$row['user']}</span>" : "<span style=\"color:#FF6633;\">{$row['user']}</span>";
		$eintrag2 = ($row['entry'] == Neu AND ($row['status'] == Online)) ? "<span style=\"color:red;\">New</span>" : "{$published}";
$post_list_blog.= " 


<!--- Einträge in Tabelle1 -->
{$eintrag1}
{$row['DatumFormatiert']}
usw....


<!--- das Feld Comment in Tabelle2 --->
 $user, $comment

";
}


ich komme so einfach nicht weiter...vielleicht ist meine ganze Überlegung aber auch falsch


vielleicht hat von euch einer eine Idee.......
(etwas fertiges zu nehmen was es ja mehr als genug gibt im Internet..... kommt nicht in betracht)


Danke für eure Mühe und Hilfe

didek
 
Zuletzt bearbeitet:
item: Formatiere dein Code und du wirst eingie Dinge sehen
Hier mal dein Code formatiert:
PHP:
while($row = mysql_fetch_array($result)){
    //Die einzelnen Zeilen in den Array abspitzen. Zeile 1 hat so die ID 0
		$table[] =$row;
	foreach($table as $row){
		$user = $row['comment_user'];
		$comment = $row['comment'];
	}
	$published = ($row['status'] == Online) ? "<span style=\"color:green;\">{$row['status']}</span>" : "<span style=\"color:#FF6633;\">{$row['status']}</span>";
	        $eintrag1 = ($row['entry'] == Neu AND ($row['status'] == Online)) ? "<span style=\"color:red;font-weight:bold;\">{$row['user']}</span>" : "<span style=\"color:#FF6633;\">{$row['user']}</span>";
	        $eintrag2 = ($row['entry'] == Neu AND ($row['status'] == Online)) ? "<span style=\"color:red;\">New</span>" : "{$published}";
	$post_list_blog.= " 


		//Eintrage in Tabble1
		{$eintrag1}
		{$row['DatumFormatiert']}
		usw....


		//das Feld Commet in Tabelle2
		 $user, $comment

	";
}
Also, du siehst wird der foreach bei jedem while-Durchgang ausgeführt. Das sollte glaub nicht sein...

item: Um die Comments zusammenzunehmen könntest du im SQL ein GROUP_CONCAT() verwenden
 
Hallo zusammen,

@Yaslaw...Danke für deine Mühe

aber ich denke das ich damit noch ein wenig Überfordert bin......werde wohl noch intensiver lesen müssen

Grüße
didek
 
Nimm trotzdem den foreach() aus dem while() heraus. Das kann so nicht das sein was du willst
 
Zurück