Kommentare nach Newstext selektieren?

icefire

Erfahrenes Mitglied
Hallo!

Hab die Informationen die hier zufinden waren versucht umzusetzen. Doch es werden meine Kommentare nicht selektiert. auch wird die anzahl nicht korekt angezeigt.

Hier der Code auf der Newsseite mit Link (ID-Übergabe) zu den Kommentaren. Auch versuche ich die Menge der Kommentare zu ermitteln:
PHP:
<?
echo("<td colspan=\"3\" class=\"text0\" bgcolor=\"".$tabcol1."\" style=\"border-right: 1px solid black; border-left: 1px solid black;\"><div align=\"left\"><a href=\"index.php?file=admins/add_kom&nw_id=".$data[nw_id]."\">Kommentare</a>");

$query = "SELECT count(kom_order) FROM infmem_kom ORDER BY kom_order ='$data[nw_id]'";
$result = mysql_query($query);
echo mysql_error(); 
$count_nw = mysql_num_rows($result);
		
echo(" ".$count_nw."</div></td>
		</tr>");
?>

Bei den Kommentaren angekommen zeigt der mir alle geschriebenen Kommentare an - leider nicht nur die, die für die eigentlichen news gepostet wurden:
PHP:
<? 
global $nw_id;
  
if ($_GET[nw_id] == ""){
	die("Die ID wurde nicht übermittelt!");
	}
	else{
	$verbindung = @mysql_connect($mysqlserver, $mysqluser, $mysqlpass) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!");   
	$selectdb = @mysql_select_db($mysqldb, $verbindung) or die("Konnte die Datenbank <b>$mysqldb</b> nicht auswählen!");
	$link = mysql_query("SELECT * FROM infmem_kom ORDER BY kom_order='$_GET[nw_id]'");      
	echo mysql_error();
	
	while($data = mysql_fetch_array($link)){
	
	echo("<table align=\"center\" width=\"550px\" cellspacing=\"0\" cellpadding=\"2\" border=\"0\" bgcolor=\"".$bgcol1."\">
		<tr><td><br></td></tr>
		<tr><td colspan=\"3\" style=\"height: 1px; width: 570px;\" bgcolor=\"".$bodcol1."\"></td></tr>
		<tr>
		<td width=\"570px\" height=\"10px\" class=\"text0\" bgcolor=\"".$tabcol1."\" style=\"border-left: 1px solid black; border-right: 1px solid black;\"><div align=\"left\">Kommentar wurde von <font class=\"text1\">".$data[kom_name]."</font> am <font class=\"text1\">".german_date($data[kom_date])."</font> abgegeben.</div></td>
		</tr>
		<tr><td colspan=\"3\" style=\"height: 1px; width: 570px;\" bgcolor=\"".$bodcol1."\"></td></tr>
		<tr>
		<td width=\"570px\" class=\"text3\" bgcolor=\"".$tabcol4."\" style=\"border-left: 1px solid black; border-right: 1px solid black;\"><div align=\"left\">".$data[kom_text]."</div><br></td>
		</tr>			
		<tr><td colspan=\"3\" style=\"height: 1px; width: 570px;\" bgcolor=\"".$bodcol1."\"></td></tr>
		</table>");
	}
}
?>

Was habe ich denn übersehen bzw wie muss ich die DB-Abfrage vornehmen?
 
Zu jedem geposteten Comment wird in der DB eine Spalte
news_id mit der id der entsprechenden News gefüllt.
PHP:
$qry = mysql_query("select * from `news`");
while ($row = mysql_fetch_assoc($qry)) {
  $sql = mysql_query("select * from `comments` where `news_id` = '".$row['id']."'");
  echo "Anzahl Comments: ".mysql_num_rows($sql);
  while ($row2 = mysql_fetch_assoc($sql)) {
    echo $row2['nick']." schreieb ....";
  }
}
 
Ja ich machen einen Eintrag in die Datenbank - wobei die nw_id der News zu kom_order wird, aber in einer separaten Tabelle.
 
Ich versteh dein Aufbau bzw. dein Problem nicht wirklich :(

Tabelle für die News:
Code:
id | titel | text | autor | datum
Tabelle für die Comments:
Code:
id | autor | text | datum | news_id

Jetzt muss du doch lediglich alles von den Comments auslesen,
wo news_id gleich der id von den News ist :)
 
Versuch' mal Folgendes:
PHP:
<?php
  $query = "
	SELECT
	        COUNT(`kom_order`) AS `count`
	  FROM
	        `infmem_kom`
	  ORDER BY
	        `kom_order` = '".$data['nw_id']."'
	";
  if( !$result = mysql_query($query) ) {
    echo '<div><strong>MySQL Error <tt>'.mysql_errno().'</tt>:</strong> '.htmlspecialchars(mysql_error()).'<pre>'.$query.'</pre></div>';
    exit;
  }
  list($count_nw)  = mysql_fetch_array($result, MYSQL_ASSOC);
  echo('<td colspan="3" class="text0" bgcolor="'.$tabcol1.'" style="border-right:1px solid black; border-left:1px solid black;"><div align="left"><a href="index.php?file=admins/add_kom&amp;nw_id='.$data['nw_id'].'">Kommentare</a> '.$count_nw.'</div></td></tr>');
?>
PHP:
<?php
  if( isset($_GET['nw_id']) && !empty($_GET['nw_id']) ) {
    die("Die ID wurde nicht übermittelt!");
  } else {
    if( !$verbindung = @mysql_connect($mysqlserver, $mysqluser, $mysqlpass) ) {
      echo '<div><strong>MySQL Error <tt>'.mysql_errno().'</tt>:</strong> '.htmlspecialchars(mysql_error()).'</div>';
      exit;
    }
    if( !mysql_select_db($mysqldb, $verbindung) ) {
      echo '<div><strong>MySQL Error <tt>'.mysql_errno().'</tt>:</strong> '.htmlspecialchars(mysql_error()).'</div>';
      exit;
    }

    $query = "
	SELECT
	        `kom_name`,
	        `kom_date`,
	        `kom_text`
	  FROM
	        `infmem_kom`
	  ORDER BY
	        `kom_order` = '".$_GET['nw_id']."'
	";
    if( !$result = mysql_query($query) ) {
      echo '<div><strong>MySQL Error <tt>'.mysql_errno().'</tt>:</strong> '.htmlspecialchars(mysql_error()).'<pre>'.$query.'</pre></div>';
    }
    while( $data = mysql_fetch_array($link, MYSQL_ASSOC) ) {
      echo('<table align="center" width="550px" cellspacing="0" cellpadding="2" border="0" bgcolor="'.$bgcol1.'">
        <tr><td><br /></td></tr>
        <tr><td colspan="3" style="height:1px; width:570px;" bgcolor="'.$bodcol1.'"></td></tr>
        <tr>
        <td width="570px" height="10px" class="text0" bgcolor="'.$tabcol1.'" style="border-left:1px solid black; border-right:1px solid black;"><div align="left">Kommentar wurde von <span class="text1">'.$data['kom_name'].'</span> am <span class="text1">'.german_date($data['kom_date']).'</font> abgegeben.</div></td>
        </tr>
        <tr><td colspan="3" style="height:1px; width:570px;" bgcolor="'.$bodcol1.'"></td></tr>
        <tr>
        <td width="570px" class="text3" bgcolor="'.$tabcol4.'" style="border-left:1px solid black; border-right:1px solid black;"><div align="left">'.$data['kom_text'].'</div><br /></td>
        </tr>
        <tr><td colspan="3" style="height:1px; width:570px;" bgcolor="'.$bodcol1.'"></td></tr>
        </table>');
    }
  }
?>
 
Habs raus!

Anzahl der Kommetare:
PHP:
<? 
echo("<td colspan=\"3\" class=\"text0\" bgcolor=\"".$tabcol1."\" style=\"border-right: 1px solid black; border-left: 1px solid black;\"><div align=\"left\"><a href=\"index.php?file=admins/add_kom&nw_id=".$data[nw_id]."\">Kommentare</a>"); 

$query = "SELECT kom_order FROM infmem_kom WHERE kom_order ='".$data[nw_id]."'";
$result = mysql_query($query);
echo mysql_error(); 
$count_nw = mysql_num_rows($result); 
         
echo(" ".$count_nw."</div></td> 
        </tr>"); 
?>


Kommetare sortiert nach der News ID (nw_id):
PHP:
<?
$sql = "SELECT * FROM infmem_kom WHERE kom_order ='".$_GET[nw_id]."' ORDER BY kom_order"; 
?>

Danke für die Tips und eure Hilfe! :-)

mfg
ic3
 
Zurück