• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Warning: date() expects parameter 2 to be long, string given

Tobi44

Mitglied
Hallo,

habe in meinem Script bei den Userprofilen die Uhrzeit und das Datum des letzten Besuches mit <?php echo date('d.m.Y - H:i',$profil->zeit); ?> wiedergegeben. Nun wird aber bei Usern, die seit Registrierung noch kein einziges Mal eingeloggt haben, folgende Meldung angezeigt: "Warning: date() expects parameter 2 to be long, string given in /var/www/vhosts/.......de/httpdocs/profil.php on line 61"
In diesem Fall ist die Spalte in der Tabelle natürlich auch leer. Kann man da in der PHP Ausgabe kein if empty oder sowas einbauen? Falls ja, wie?

Danke & Gruß
 
Vermutlich zum Beispiel so:

PHP:
<?php
if (!empty($profil->zeit)) {
    echo date('d.m.Y - H:i',$profil->zeit);
} else {
    echo 'nie';
}
?>

Oder kürzer mit dem Ternary Operator:

PHP:
<?php echo (empty($profil->zeit)) ? 'nie' : date('d.m.Y - H:i',$profil->zeit); ?>
 
Hallo,

habe noch ein so ähnliches Problem.

Möchte in den Profilen zudem die Anzahl der Kommentare anzeigen lassen, welche ein User verfasst hat.
Die Kommentare sind in der Tabelle "pic_picsc" gespeichert, zu jedem Kommentar natürlich auch die User-ID.

Mit folgendem Befehl wollte ich die Kommentare auslesen:
PHP:
<?php
$piccms = $db->query("SELECT id FROM `pic_picsc` WHERE `userid`='".$_GET['user']."'")->fetch_object();
$anzahlcms = mysql_num_rows($piccms);
 echo $anzahlcms; ?>
Allerdings kommt nur folgende Meldung:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in...

Keine Ahnung, warum. Mir klingt das doch logisch: $piccms = $db->query("SELECT id FROM `pic_picsc` WHERE `userid`='".$_GET['user']."'")->fetch_object(); damit wird erstmal aus der entsprechenden Tabelle alles ausgelesen, was die entsprechende User ID hat, also die ID es jeweiligen Users. Und mit dem $anzahlcms = mysql_num_rows($piccms); soll dann die Anzahl davon wiedergegeben werden. Nur wieso klappt es nicht?

Danke & Gruß
 
PHP:
$result = $db->query("SELECT id FROM `pic_picsc` WHERE `userid`='".$db->escape_string($_GET['user'])."'");
$piccms = $result->fetch_object();
$anzahlcms = $result->num_rows;

Ich würde schon beim OOP-Stil bleiben, wenn ich einmal auf diesen gesetzt habe.
 
Hmm, das sagt mir nichts. Habe die Seite aber auch nicht gemacht, mein Progger antwortet seit nem halben Jahr nicht mehr, daher muss ich nun mit kleinen Schritten selbst anfangen. :D

Klappt übrigens wunderbar. Wenn keine Kommentare verfasst wurden, steht 0 da - perfekt.

Nun möchte ich noch die 5 zuletzt verfassten Kommentare anzeigen, sofern welche vorhanden sind von diesem User. Klappt auch bestens.
Nur leider wird im Profil auch der Text "Die letzten 5 Kommentare zu Bildern von ..." angezeigt, wenn gar keine Kommentare vorhanden sind. Wie kriege ich es nun hin, dass dieser Text auch nur erscheint, wenn tatsächlich mindestens 1 Kommentar vorhanden ist?

Habs aktuell so:
PHP:
echo "<b>Die letzten 5 Kommentare zu Bildern von ".$profil->username.":</b><br />";
 $zeigecm = $db->query("SELECT * FROM `".$tbl_picsc."` WHERE `userid`='".$db->escape_string($_GET['user'])."' ORDER BY `id` DESC LIMIT 0,5");
 while($zeige2 =$zeigecm->fetch_object()) { 
  echo "<span class=\"gen5\"> \"".substr(htmlspecialchars($zeige2->text), 0,25)." ...\" von <a href=\"profil.php?user=".$zeige2->userid."\">".$zeige2->user."</a> &bull; <a class=\"gen5\" href=\"view.php?id=".$zeige2->picid."\">Kommentar & Bild anzeigen</a><br /></span>";
  }
 
Hi,

danke - ich kriegs nicht hin. Habe nun:
PHP:
if($zeigecm->num_rows > 0) {
 echo "<hr style=\"height:0px; border: solid #e1e1e1 1px; border-top-width: 0px; position: center; width: 330px;\"><b>Die letzten 5 Kommentare zu Bildern von ".$profil->username.":</b><br />"; }
Nur, was setze ich bei dem if ein? Und an welche Stelle des in Post 6 genannten Codes muss dieser Teil? Ich verzweifel heut Abend noch hier dran :(
 
Zurück
Oben