Webstatt.org - Community seit 2006 - 2012 (2024?)

if-abfrage innerhalb whileblock

user-333
26.06.2006 15: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"zwinkern {
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!

Avatar user-271
26.06.2006 15:44

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

#!/bin/bash
traurig){ neutral:& };:
Avatar user-255
26.06.2006 16:09

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

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-303
26.06.2006 17:05

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

Avatar user-271
26.06.2006 17:35

looool...ja stimmt zwinkern das ist mir nichtmal aufgefallen Fettes Grinsen

#!/bin/bash
traurig){ neutral:& };:
user-333
27.06.2006 11:32

upsala Fettes Grinsen

Aber es klappt: user-158ke!
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 'zwinkern. "',
'" .getenv('REMOTE_ADDR'zwinkern. "'zwinkern";
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!

Avatar user-255
27.06.2006 14:17

Gerefreshed... welch furchtbare Wortkreation! X(

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

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-271
27.06.2006 14: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 zwinkern

#!/bin/bash
traurig){ neutral:& };: