Beiträge der User aus DB auslesen

Hallo,

ich hätte das gerne wie folgt:

- Oben steht der Name von dem User der den Beitrag geschrieben hat ( das habe ich schon ist ja auch kein Problem.

- Dann kommt das Datum wo der Beitrag geschrieben worden ist ( auch das ist kein Problem )

- Jetzt kommt die Anzeige wo steht wieviel Beiträge der einzelene User schon geschrieben hat.

Eigentlich genau so wie auch hier im Forum wenn du da auf die Linke Seite schaust da steht das ja auch alles da.....
 

Anhänge

  • Untitled-1.gif
    Untitled-1.gif
    1,1 KB · Aufrufe: 70
Willst Du auch eine Beitragsliste dabei haben? Wie hier den Thread. Dass halt die Beitraege des Threads aufgelistet werden, welche ja in der Regel von verschiedenen Usern sind.

Ich kann mir im Moment nicht wirklich ein Bild davon machen was Du willst.
Falls Du sowas wie den Thread hier nachbilden willst (das ist was ich momentan annehme) solltest Du anhand des Scripts das ich gepostet hab weiterkommen. Das brauchst Du dann nur ein wenig anpassen.

Oder zeigst Du nur einen Beitrag an? Woher bekommst Du den User dessen Informationen angezeigt werden sollen?
 
Hallo,

kann das sein, dass wir aneinander vorbei reden? Das mit den Treads und alles geht schon. Ich brauch nur noch die Funktion dass eben die Anzalh der Beiträge bei den einzelnen User steht.

Also so wie hier.

Da steht doch auch:

Bei mir z.B. 27 Beiträge

Bei dir z.B. 899 Beiträge

Bei XY steht 1002 Beiträge

Verstehst du nun was ich meine?
 
Also doch das was ich die ganze Zeit denke.
Wie genau speicherst Du den User mit dem Beitrag?
Du hast also die Schleife in der Du die Beitrage eines Threads anzeigst. Fuer jeden Beitrag musst Du dann anhand der mit dem Beitrag gespeicherten Nutzerinformationen alle Beitraege durchsuchen und mittels mysql_num_rows zaehlen.
Siehe mein Beispiel oben.
 
Hallo,

so nun kommen wir der Sache mal etwas näher. Hier hast du mal das Skript wie ich die Beiträge auslesen tu:

PHP:
					   <?php
 include("config.php"); // config datei laden.
 
 //echo "<a href=index.php>Zur&uuml;ck zur &uuml;bersicht</a><br><br>";
 
 $threadid = $_GET['threadid']; // threadid aus adressleiste auslesen
 
 $fp = fopen("template_post.html","r");  // teamplate zum lesen(r) &ouml;ffnen
 $template = fread($fp,filesize("template_post.html"));  // inhalt der template datei in die teamplate variable laden.
 
 $sql = mysql_query("SELECT * FROM simple_posts  WHERE threadid = '$threadid' ORDER BY postid ASC"); // mysql select befehl
 
 while($row = mysql_fetch_Assoc($sql)) { // l&auml;d bei jedem durchgang(immer die n&auml;chste) eine zeile aus der tabelle in einen array in die variable $row
 
 	$titel = $row['titel'];  // titel besorgen
 	$von = $row['von'];  // von besorgen
 	$datum = $row['datum']; // datum besorgen
 	$post = $row['post']; // post besorgen
 	
 	$datum = strftime("%d.%m.%Y",$datum); //  datum formatieren
 	
 	$ausgabe = $template;
 	
 	$ausgabe = str_replace("{von}",'<a href http://profils.php?user=' . $von . '">' . $von . '</a>',$ausgabe);  // von ins template einsetzen
 	$ausgabe = str_replace("{titel}",$titel,$ausgabe);  // titel ins template einsetzen
 	$ausgabe = str_replace("{datum}",$datum,$ausgabe); // datum ins template einsetzen
 	
 	$ausgabe = str_replace("{text}",echo_message($post,false,true),$ausgabe); // den post text ins template einsetzen
 	
 	$ausgabe = str_replace("{message}",'<a href http://mypost.php?show=write&amp;empfaenger=' . $von . '">Message schreiben</a>',$ausgabe); // den post text ins template einsetzen
 	
 	echo $ausgabe;
 	
 };
 ?></p>

So sehen meine Tabellen in der DB aus:

PHP:
 CREATE TABLE `forum_posts` (
   `postid` int(11) NOT NULL auto_increment,
   `threadid` int(11) NOT NULL default '0',
   `von` text NOT NULL,
   `datum` text NOT NULL,
   `post` text NOT NULL,
   `titel` text NOT NULL,
   `ip` text NOT NULL,
   PRIMARY KEY  (`postid`)
 ) TYPE=MyISAM AUTO_INCREMENT=16 ;

Ich verstehe immer noch nicht wo ich das von dir einbauen muss.
 
Hallo und guten Abend,

hab mal ein wenig was dran gemacht. Nun habe ich den Code wie folgt:

PHP:
                         <?php
   include("config.php"); // config datei laden.
   
   //echo "<a href=index.php>Zur&uuml;ck zur &uuml;bersicht</a><br><br>";
   
   $ppu = array(); // posts per user
   
   $threadid = $_GET['threadid']; // threadid aus adressleiste auslesen
   
   $fp = fopen("template_post.html","r");  // teamplate zum lesen(r) &ouml;ffnen
   $template = fread($fp,filesize("template_post.html"));  // inhalt der template datei in die teamplate variable laden.
   
   $sql = mysql_query("SELECT * FROM simple_posts  WHERE threadid = '$threadid' ORDER BY postid ASC"); // mysql select befehl
   
  while($row = mysql_fetch_Assoc($sql)) { // l&auml;d bei jedem durchgang(immer die n&auml;chste) eine zeile aus der tabelle in einen array in die variable $row
   
      $von = $row['von'];
   
     if (!isset($ppu[$von])) {
       $ppusql = "SELECT COUNT(*) AS anzahl FROM `simple_posts` WHERE `von`='$von'"; //[1]
       mysql_query($ppusql) OR die(mysql_error());
       $ppurow = mysql_fetch_assoc($ppusql);
       $ppu[$von] = $ppurow['anzahl'];
     }
       $titel = $row['titel'];  // titel besorgen
       $von = $row['von'];  // von besorgen
       $datum = $row['datum']; // datum besorgen
       $post = $row['post']; // post besorgen
       $anzahl = $ppurow['anzahl']; 
       $datum = strftime("%d.%m.%Y",$datum); //  datum formatieren
       
       $ausgabe = $template;
       
  $ausgabe = str_replace("{von}",'<a href http://../pr.php?user=' . $von . '">' . $von . '</a>',$ausgabe); // von ins template einsetzen
       $ausgabe = str_replace("{titel}",$titel,$ausgabe);  // titel ins template einsetzen
       $ausgabe = str_replace("{datum}",$datum,$ausgabe); // datum ins template einsetzen
   
       $anzahl = str_replace("{anzahl}",$ppurow,$ausgabe);
       
       $ausgabe = str_replace("{text}",echo_message($post,false,true),$ausgabe); // den post text ins template einsetzen
       
  $ausgabe = str_replace("{message}",'<a href http://../post.php?show=write&amp;empfaenger=' . $von . '">Message schreiben</a>',$ausgabe); // den post text ins template einsetzen
       
       echo $ausgabe;
       
   };
   ?>

Aber wenn ich jetzt die Seite aufrufe, dann kommt nur das:

PHP:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL  result resource in /www/htdocs/v148718/community/topic.php on line  216

In der Zeile 216 steht:

PHP:
      $ppurow = mysql_fetch_assoc($ppusql);

dann kommt das nächste Problem in der Ausgabe von dem Template kommt nur folgendes:

{anzahl} Beiträge

Ich hoffe es kann mir nochmals jemadn helfen.

Gruß Svenja
 
Sollte diese Zeile
PHP:
$anzahl = str_replace("{anzahl}",$ppurow,$ausgabe);
nicht eher so
PHP:
$ausgabe = str_replace("{anzahl}",$ppurow,$ausgabe);
aussehen?
Denn in den anderen str_replace-Zeilen ist's auch so aehnlich, wie z.B. hier:
PHP:
$ausgabe = str_replace("{datum}",$datum,$ausgabe);

Und ich glaube, dass folgendes Quatsch ist:
PHP:
$ppusql = "SELECT COUNT(*) AS anzahl FROM `simple_posts` WHERE `von`='$von'"; 
mysql_query($ppusql) OR die(mysql_error());
$ppurow = mysql_fetch_assoc($ppusql);
$ppu[$von] = $ppurow['anzahl'];

Probier mal das:
PHP:
$ppusql = "SELECT * FROM `simple_posts` WHERE `von`='$von'";
$result=mysql_query($ppusql);
$ppu=mysql_num_rows($result);

In $ppu sollte dann die Anzahl der Beitraege des Users stehen.

Weiterhin viel Erfolg.
 
Hi,

sag mal was mache ich da falsch?

PHP:
  Fatal error: Call to undefined function: mysql_real_query() in  /www/htdocs/v148718/community/topic.php on line 207

So sieht mein Skript nun aus:

PHP:
<?php
 include("config.php"); // config datei laden.
 error_reporting(E_ALL);
 //echo "<a href=index.php>Zur&uuml;ck zur &uuml;bersicht</a><br><br>";
 
 $ppu = array(); // posts per user
 
 $threadid = $_GET['threadid']; // threadid aus adressleiste auslesen
 
 $fp = fopen("template_post.html","r");  // teamplate zum lesen(r) &ouml;ffnen
 $template = fread($fp,filesize("template_post.html"));  // inhalt der template datei in die teamplate variable laden.
 
 	$sql = "SELECT * FROM simple_posts  WHERE threadid = '".mysql_real_query($threadid)."' ORDER BY postid ASC";
 	  $result = mysql_query($sql) or die(mysql_error());
 	  while($row = mysql_fetch_Assoc($result)) {
 	   $von = $row['von'];
 
   if (!isset($ppu[$von])) {
 	  $ppusql = "SELECT COUNT(*) AS anzahl FROM `simple_posts` WHERE `von`='$von'"; //[1]
 	  $ppuresult = mysql_query($ppusql) OR die(mysql_error());
 	  $ppurow = mysql_fetch_assoc($ppuresult);	
 	$ppu[$von] = $ppurow['anzahl']; ;
   }
   
 	$titel = $row['titel'];  // titel besorgen
 	$von = $row['von'];  // von besorgen
 	$datum = $row['datum']; // datum besorgen
 	$post = $row['post']; // post besorgen
 
 	$anzahl = $ppu[$von];	
 	$datum = strftime("%d.%m.%Y",$datum); //  datum formatieren
 	
 	$ausgabe = $template;
 	
 	$ausgabe = str_replace("{von}",'<a href http://../pr.php?user=' . $von . '">' . $von . '</a>',$ausgabe);  // von ins template einsetzen
 	$ausgabe = str_replace("{titel}",$titel,$ausgabe);  // titel ins template einsetzen
 	$ausgabe = str_replace("{datum}",$datum,$ausgabe); // datum ins template einsetzen
 
 $ausgabe = str_replace("{anzahl}",$ppu[$von],$ausgabe);
 	$ausgabe = str_replace("{text}",echo_message($post,false,true),$ausgabe); // den post text ins template einsetzen
 	
 	$ausgabe = str_replace("{message}",'<a href http://../post.php?show=write&amp;empfaenger=' . $von . '">Message schreiben</a>',$ausgabe); // den post text ins template einsetzen
 	
 	echo $ausgabe;
 	
 };
 ?>

die oben erwähnte Zeile ist folgende:

PHP:
	$sql = "SELECT * FROM simple_posts  WHERE threadid = '".mysql_real_query($threadid)."' ORDER BY postid ASC";
 
Na ja ist mir nun auch egal, ich kann das nimmer weiter machen ich mach das nun schon seit 2 Tagen. Danke für deine Hilfe, bleibt eben die Funktion weg.
 
Zurück