Willkommen in der Webstatt
User-1 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.
xyz-48ke!

netcup.de Warum gibt es hier Werbung?
User-2 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>';
}

User-3 am 26.06.06 18:09

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

User-4 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

User-2 am 26.06.06 19:35

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

User-1 am 27.06.06 13:32

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!

User-3 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? xyz-48n musst du schon den Text als Wert angeben..

User-2 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