Willkommen in der Webstatt Zum Webstatt Blog und Stories
trefixxx am 26.06.06 17:36

Hallo,

irgendwie bin ich verwirrt.
Der If-Block wird nicht betreten, auch wenn keine Datensätze vorhanden sind.

<?
// GET COMMENTS
$sql_comment = "SELECT
*
FROM
tr_comments
WHERE
article_id = '" .$article_id. "'";
$result_comment = mysql_query($sql_comment);
while($comment = mysql_fetch_assoc($result_comment))
{

if (mysql_num_rows($result_comment) == "0") {
echo '<div style="text-align: center; padding: 12px;">
Bisher wurden keine Kommentare abgegeben</div>';
}
else {
echo '
<dd><img src="images/comments_figur.gif" style="float: left; margin: 5px 10px 2px 0px;" alt="Figur" />
<h2 style="margin-top: 9px;">';
echo $comment['name'];
echo '
</h2>
<h3>';
echo $comment['date'];
echo '
</h3>
<p>';
echo $comment['comment'];
}

}
?>


Kann mir da bitte jemand helfen? Ich sitze nun schon lange an diesem Quatsch-Problem.
Danke!

netcup.de Warum gibt es hier Werbung?
nuit nuit am 26.06.06 17:44

probiers mal so ;) nachdem 0 gleichbedeutend mit false ist ;) zumindest für php kann man das so schreiben ;)
if (!mysql_num_rows($result_comment)) {
echo '<div style="text-align: center; padding: 12px;">
Bisher wurden keine Kommentare abgegeben</div>';
}

milahu milahu am 26.06.06 18:09

Vielleicht ist ja die Anfrage schon fehlerhaft.. Außerdem: Zahlen fühlen sich unwohl als strings..

Snake am 26.06.06 19:05

wenn keine daten vorhanden sind, wird die while schleife gar nicht betreten. du musst das if außerhalb von while platzieren

nuit nuit am 26.06.06 19:35

looool...ja stimmt ;) das ist mir nichtmal aufgefallen :D

trefixxx am 27.06.06 13:32

upsala :D

Aber es klappt: Danke!
Eine kurze Frage habe ich noch. Folgendermaßen schreibe ich Kommentare in die Datenbank:

<dt class="infobar" style="margin-top: 22px;">
<span class="infobar_text">Write a comment</dt>
<dd>
<form action="?action=article&id=<? echo $_GET['id']; ?>" method="post">
<p>
<input type="text" name="name" id="name" value="" size="40" />
<label for="search"><small>Name *</small></label>
</p>
<p>
<input type="text" name="email" id="email" value="" size="40" />
<label for="search"><small>E-Mail *</small></label>
</p>
<p>
<input type="text" name="website" id="website" value="" size="40" />
<label for="search"><small>Web</small></label>
</p>
<p>
<textarea type="text" name="comment" id="comment" value="" size="60" /></textarea>
</p>
<input type="submit" name="submit" class="submit" value="Submit"/>
</form>
</dd>
</dt>
<?php
// SAVE COMMENT

if (isset($_POST['submit'])) {

$save_comment = "INSERT INTO
`tr_comments` (article_id, name, email, website, comment, date, ip)
VALUES (
'" .$_GET['id']. "',
'" .htmlspecialchars($_POST['name']). "',
'" .htmlspecialchars($_POST['email']). "',
'" .htmlspecialchars($_POST['website']). "',
'" .htmlspecialchars($_POST['comment']). "',
'" .date('F dS Y '). "',
'" .getenv('REMOTE_ADDR'). "')";
mysql_query($save_comment) OR die (mysql_error());
echo "Der Kommentar wurde erfolgreich aufgenommen!";

}
?>


Wenn der benutzer auf submit klickt, erscheint die Erfolsmeldung, aber die eingetragene Nachricht erscheint darüber nicht. Ich denke, dass die gesamte Seite nocheinmal gerefreshed werden muss. Aber wie?

Danke!

milahu milahu am 27.06.06 16:17

Gerefreshed... welch furchtbare Wortkreation! X(

> aber die eingetragene Nachricht erscheint darüber nicht.
Wie darüber? Wo? In der textarea? Dann musst du schon den Text als Wert angeben..

nuit nuit am 27.06.06 16:48

entweder du gibst den Wert direkt aus...oder du schreibst es rein bevor du es ausliest...also reinschreiben->auslesen...dann sollte es auch gehn ;)

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt