Newssite

Manuelh

Mitglied
Hi!
Ich hab ein kleines Problem. Und zwar hab ich mir ein kleines Newssystem gebastel aber ich hab Prbleme die Datensätze aus der Sql Datenbank zu laden!
Hab 2 Php seiten.
die erste ist die Newsseite

Code:
<html>
<body>
<?php
$DatabaseHost = "localhost"; 
$DatabaseUser = "Benutzer"; 
$DatabasePassword = "test";
$Database = "news"; 
$TableNews = "news";  

$MaximaleAnzahlNews = 10;


$DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
mysql_select_db($Database, $DatabasePointer);

$ResultPointer = mysql_query("SELECT Titel, Newstext, Autor, erstellt FROM $TableNews ORDER BY Erstellt DESC LIMIT $MaximaleAnzahlNews", $DatabasePointer);

if(mysql_num_rows($ResultPointer)>0)
{
	for($i=0; $i<mysql_num_rows($ResultPointer); $i++)
	{
		$Result = mysql_fetch_object($ResultPointer);
		echo"<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\">",
			"<tr>",
			"<td><b>",
			$Result->Titel,
			"</b></td>",
			"<td align=\"right\"><b><i>",
			substr($Result->Erstellt, 8, 2) . "." . substr($Result->Erstellt, 5, 2) . "." . substr($Result->Erstellt, 0, 4) . " " . substr($Result->Erstellt, 10, 6),
			"</i></b></td>",
			"</tr>",
			"<tr>",
			"<td colspan=\"2\">",
			nl2br($Result->Newstext),
			"</td>",
			"</tr>",
			"<tr>",
			"<td>";
		if(!Empty($Result->URL))
		{
			echo"<a href=\"",
				$Result->URL,
				"\">Mehr</a>";
		}
		else
		{
			echo"&nbsp;";
		}
		echo"</td>",
			"<td align=\"right\"><i>von ",
			$Result->Autor,
			"</i></td>",
			"</tr>",
			"</table><br><br>";
	}
}
else
{
	echo"Es wurden leider keine aktuellen News gefunden.";
}

?>
</body>
</html>
2 Seite, Administration
Code:
<html>
<head>
<title>News-Administration</title>
</head>
<body>

<?php

$DatabaseHost = "localhost";
$DatabaseUser = "user";
$DatabasePassword = "password";
$Database = "mydatabase";
$TableNews = "News";

$MaximaleAnzahlNews = 10;

$Zugangspasswort = "admin";

if($_REQUEST['Send'] && $_REQUEST['Passwort']==$Zugangspasswort)
{
	$DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
	mysql_select_db($Database, $DatabasePointer);
	
	if($_REQUEST['NewsEntfernen'])
	{
		mysql_query("DELETE FROM $TableNews WHERE ID='".$_REQUEST['ID']."'", $DatabasePointer);
	}

	if($_REQUEST['NewsErstellen'])
	{
		$Erstellt = date("Y-m-d H:i:s");
		mysql_query("INSERT INTO $TableNews (Titel, Newstext, URL, Autor, Erstellt) VALUES ('".$_REQUEST['Titel']."', '".$_REQUEST['Newstext']."', '".$_REQUEST['URL']."', '".$_REQUEST['Autor']."', '$Erstellt')", $DatabasePointer);
	}

	echo"<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\">",
		"<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">",
		"<input name=\"Passwort\" type=\"hidden\" value=\"".$_REQUEST['Passwort']."\">",
		"<input name=\"NewsErstellen\" type=\"hidden\" value=\"1\">",
		"<tr>",
		"<td>Titel</td>",
		"<td><input name=\"Titel\" type=\"text\"></td>",
		"</tr>",
		"<tr>",
		"<td>Newstext</td>",
		"<td><textarea cols=\"40\" name=\"Newstext\" rows=\"5\"></textarea></td>",
		"</tr>",
		"<tr>",
		"<td>URL</td>",
		"<td><input name=\"URL\" type=\"text\"></td>",
		"</tr>",
		"<tr>",
		"<td>Autor</td>",
		"<td><input name=\"Autor\" type=\"text\"></td>",
		"</tr>",
		"<tr>",
		"<td colspan=\"2\"><input name=\"Send\" type=\"submit\" value=\"Erstellen\"></td>",
		"</tr>",
		"</form>",
		"</table><br><br>";

	echo"Die letzten $MaximaleAnzahlNews News im Überblick:<br><br>";

	$ResultPointer = mysql_query("SELECT ID, Titel, Newstext, URL, Autor, Erstellt FROM $TableNews ORDER BY Erstellt DESC LIMIT $MaximaleAnzahlNews", $DatabasePointer);

	if(mysql_num_rows($ResultPointer)>0)
	{
		for($i=0; $i<mysql_num_rows($ResultPointer); $i++)
		{
			$Result = mysql_fetch_object($ResultPointer);
			echo"<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\">",
				"<tr>",
				"<td><b>",
				$Result->Titel,
				"</b></td>",
				"<td align=\"right\"><b><i>",
				substr($Result->Erstellt, 8, 2) . "." . substr($Result->Erstellt, 5, 2) . "." . substr($Result->Erstellt, 0, 4) . substr($Result->Erstellt, 10, 6),
				"</i></b></td>",
				"</tr>",
				"<tr>",
				"<td colspan=\"2\">",
				nl2br($Result->Newstext),
				"</td>",
				"</tr>",
				"<tr>",
				"<td>";
			if(!Empty($Result->URL))
			{
				echo"<a href=\"",
					$Result->URL,
					"\">Mehr</a>";
			}
			else
			{
				echo"&nbsp;";
			}
			echo"</td>",
				"<td align=\"right\"><i>von ",
				$Result->Autor,
				"</i></td>",
				"</tr>",
				"<tr>",
				"<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">",
				"<input name=\"Passwort\" type=\"hidden\" value=\"".$_REQUEST['Passwort']."\">",
				"<input name=\"NewsEntfernen\" type=\"hidden\" value=\"1\">",
				"<input name=\"ID\" type=\"hidden\" value=\"",
				$Result->ID,
				"\">",
				"<td colspan=\"2\"><input name=\"Send\" type=\"submit\" value=\"News löschen\"></td>",
				"</form>",
				"</tr>",
				"</table><br><br>";
		}
	}
	else
	{
		echo"Es wurden leider keine aktuellen News gefunden.";
	}
}
else
{
?>

<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="post">
<table border="0">
 <tr>
  <td>Passwort</td>
  <td><input name="Passwort" size="10" type="password"></td>
 </tr>
 <tr>
  <td align="center" colspan="2"><input name="Send" type="submit" value="Login"></td>
 </tr>
</table>
</form>

<?php
}
?>

</body>
</html>
Nun mein Problem, auf der Administrationsseite werden keine News angezeigt! Er findet keine aktuellen news! Wo liegt bei mir der Fehler?
Vielen Dank
 
ja und zwar eine num_rows fehlermeldung! Er sagt es sind keine neuen Einträge vorhanden! Und ich kann auch keine Eintragen!
 
Lass dir die News mal so ausgeben über einer while schleife:

PHP:
<?php
$deinlimit = 10; //Hier dein Limit musst du aber nicht kannst du auch rausnehemen

$sql = "SELECT * FROM deinertabellle ORDER BY id DESC LIMIT $deinlimit";
if (!$res_id = mysql_query($sql))
	die('Fehler! Daten konnten nicht ausgelesen werden.');
	while ($ausgabe = mysql_fetch_array($res_id))
	{
        //Hier die Tabelle oder dein Layout des Newsscriptes
        //Ausgeben der News tut man so echo $ausgabe['deinfeld'];
        }
?>

Hoffe du kommst damit klar!

Gruß
 
Ich bin mir jetzt nicht ganz sicher, ob es daran liegt, aber versuch mal für das zählen der MySQL Einträge ein "reines" mysql_query() zu verwenden...

Sprich in deinem Fall:
PHP:
$ResultCount = mysql_query(select * from $table_news);

Ich glaube, dass das Problem der mysql_num_rows ist, für den du ein mysql_query mit Bedingungen und vorallem mit einer Limit Angabe benutzt...
 
Zurück