Hi Leute
Seit einigen Tagen sitze ich an einem beschi****** Problem.
Ich connecte mit der Datenbank, das klappt.
Ebenfalls lese ich alle Tabellen schön aus, bis auf eine.
Ich habe zusätzlich die Tabelle "news" angelegt und will sie nun auslesen.
Eintragen funktioniert gut, doch es gibt mir immer "NULL" zurück, wenn ich die Tabelle lesen will.
Das scheint mir unerklärlich, da ich doch den Code von den bisherigen Auslese-Scripts von mir kopiert habe und alles funktioniert.
Hier mal der PHP Code:
PHP
<?php
if (!defined('INDEX')) {
header("Location: ../");
exit('Error: Zugriff verweigert, bitte ruf diese Seite über die Hauptseite auf.');
}
?>
<?php
if(isset($_POST['publish'])) {
$fehler = array();
if(!trim($_POST['title'])) $fehler[] = 'Schlagzeile (Titel) fehlt';
if(!trim($_POST['content'])) $fehler[] = 'News-Text fehlt';
if(count($fehler) == 0) {
$new_news_entry_sql = 'INSERT INTO `news` (
id,
author,
title,
content,
datum
)
VALUES ( NULL, "'.$data['id'].'", "'.$_POST['title'].'", "'.$_POST['content'].'", '.time().' )';
$new_news_entry_query = mysql_query($new_news_entry_sql);
}
}
?>
<h2>News-Editor</h2>
<a href="?src=<?php echo $_GET['src']; ?>">» Zurück zur Übersicht</a><br /><br />
<h3>Liste vorhandener Einträge</h3>
<table summary="news">
<th>
<td class="bold">Schlagzeile</td>
<td class="bold">News-Text</td>
<td width="80" class="bold">Erstellt von</td>
<td width="80" class="bold">Erstellt am</td>
</th>
<?php
//$news_sql = "SELECT * FROM `news` LIMIT 0, 30 ";
$news_sql = 'SELECT
`title`,
`content`,
`author`,
`datum`
FROM
`news`
ORDER BY
`id` ASC
LIMIT
0 , 30';
$news_qery = mysql_query($news_sql);
//var_dump($news_query);
//var_dump(mysql_fetch_array($news_query));
$sth = false;
while($news_entries = mysql_fetch_array($news_query, MYSQL_ASSOC)) {
echo '<tr>';
echo '<td>';
echo $news_entries['title'];
echo '</td>';
echo '<td>';
echo $news_entries['content'];
echo '</td>';
echo '<td>';
echo $news_entries['author'];
echo '</td>';
echo '<td>';
echo $news_entries['datum'];
echo '</td>';
echo '</tr>';
$sth = true;
}
echo mysql_error();
if($sth == false) {
echo '<tr>'."\r\n";
echo '<td>'."\r\n";
echo '---';
echo '</td>'."\r\n";
echo '<td>'."\r\n";
echo '(Noch) keine Einträge vorhanden.';
echo '</td>'."\r\n";
echo '<td>'."\r\n";
echo '---';
echo '</td>'."\r\n";
echo '<td>'."\r\n";
echo '---';
echo '</td>'."\r\n";
echo '</tr>'."\r\n";
}
?>
</table>
<h2>Neuen News-Eintrag hinzufügen</h2>
<?php
if(count($fehler) != 0) {
echo '<h3>Fehler beim Speichern des Newseintrags</h3>'."\r\n";
echo '<ul class="fehler_liste">';
foreach($fehler as $x) {
echo '<li>» '.$x.'</li>';
}
echo '</ul>';
}
elseif(isset($_POST['publish'])) {
if($new_news_entry_query) echo '<h3 class="green">Erfolgreich gespeichert</h3>';
else echo '<h3 class="red">Konnte nicht gespeichert werden. Bitte später erneut versuchen.</h3>';
}
?>
<form action="?src=<?php echo $_GET['src'] ?>&edit=<?php echo $_GET['edit'] ?>" method="post">
<div>
<label for="title">Schlagzeile<br /><span class="light">(max. 30 Zeichen)</span></label>
<input type="text" size="26" name="title" id="title" value="<?php echo $_POST['title'] ?>" /><br />
<label for="content__">Newsnachricht</label>
<textarea cols="34" rows="8" id="content__" name="content"><?php if(isset($_POST['content'])) echo $_POST['content'] ?></textarea><br /><br />
<span class="label"> </span><input type="submit" value="Veröffentlichen" name="publish" />
</div>
</form>
Alles anzeigen
Theoretisch müsste es logischerweise doch an diesem Abschnitt liegen?
PHP
<?php
//$news_sql = "SELECT * FROM `news` LIMIT 0, 30 ";
$news_sql = 'SELECT
`title`,
`content`,
`author`,
`datum`
FROM
`news`
ORDER BY
`id` ASC
LIMIT
0 , 30';
$news_qery = mysql_query($news_sql);
//var_dump($news_query);
//var_dump(mysql_fetch_array($news_query));
$sth = false;
while($news_entries = mysql_fetch_array($news_query, MYSQL_ASSOC)) {
echo '<tr>';
echo '<td>';
echo $news_entries['title'];
echo '</td>';
echo '<td>';
echo $news_entries['content'];
echo '</td>';
echo '<td>';
echo $news_entries['author'];
echo '</td>';
echo '<td>';
echo $news_entries['datum'];
echo '</td>';
echo '</tr>';
$sth = true;
}
echo mysql_error();
if($sth == false) {
echo '<tr>'."\r\n";
echo '<td>'."\r\n";
echo '---';
echo '</td>'."\r\n";
echo '<td>'."\r\n";
echo '(Noch) keine Einträge vorhanden.';
echo '</td>'."\r\n";
echo '<td>'."\r\n";
echo '---';
echo '</td>'."\r\n";
echo '<td>'."\r\n";
echo '---';
echo '</td>'."\r\n";
echo '</tr>'."\r\n";
}
?>
Alles anzeigen
Danke für die Hilfe.
Datenbankconnection und alles funktioniert prima, daran liegts bestimmt nicht, denk ich mal.