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.
xyz-48ke!
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>';
}
Vielleicht ist ja die Anfrage schon fehlerhaft.. Außerdem: Zahlen fühlen sich unwohl als strings..
wenn keine daten vorhanden sind, wird die while schleife gar nicht betreten. du musst das if außerhalb von while platzieren
looool...ja stimmt ;) das ist mir nichtmal aufgefallen :D
upsala :D
Aber es klappt: xyz-48ke!
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?
xyz-48ke!
Gerefreshed... welch furchtbare Wortkreation! X(
> aber die eingetragene Nachricht erscheint darüber nicht.
Wie darüber? Wo? In der textarea? xyz-48n musst du schon den Text als Wert angeben..
entweder du gibst den Wert direkt aus...oder du schreibst es rein bevor du es ausliest...also reinschreiben->auslesen...dann sollte es auch gehn ;)