Beagol Geschrieben 9. Juli 2004 Teilen Geschrieben 9. Juli 2004 Hallo zusammen, ich habe da mal eine Frage zu der mir unerschlossenen Welt des php (Und der Programmierung im allgemeinen ) Ich möchte gerne einen php echo (nennt man das so?) in zwei verschiedenen Farben ausgeben. Je nach einem Zeiteintrag in einer mySQL DB. Connect usw. steht soweit. Den Zeiteintrag kann ich auch schon ausgeben: <font color="red"> <?php $result1 = mysql_db_query("mysqldb","SELECT max( postdate) FROM tabelname WHERE `id` = '1' "); while($row1 = mysql_fetch_row($result1)) { echo strftime(" %d.%m.%Y %R", $row1[0]) ."Uhr"; } ?> </font> [/PHP] Wie Ihr seht, gebe ich das ganze in rot aus. Das Ergebnis aus der SQL Abfrage ist in diesem Unixzeitformat (z.B. 1089359482 ) Wie kann ich jetzt am besten die Ausgabe so steuern, das Einträge, die älter wie 2 Tage sind schwarz, neuere aber rot erscheinen? Also doch irgendwie unter Vergleich mit [CODE]gettimeofday()[/CODE] Nur die passende if clause fehlt mir. Kann mir jemand helfen? Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 9. Juli 2004 Teilen Geschrieben 9. Juli 2004 <?php $now = mktime(); $result1 = mysql_db_query("mysqldb","SELECT max( postdate) FROM tabelname WHERE `id` = '1' "); while($row1 = mysql_fetch_row($result1)) { // Sekunden Pro Tag: 86400 // 2 Tage: 172800 $Color = $now - $row1[0] > 172800 ? "black" : "red"; echo "<span style=\"color: $Color;\">"; echo strftime(" %d.%m.%Y %R", $row1[0]) ."Uhr"; echo "</span>"; } ?> [/PHP] es ist ausserdem besser, wenn man am anfang des scripts folgende funktionen aufruft: mysql_connect(...); http://de.php.net/manual/de/function.mysql-connect.php mysql_select_db(..); http://de.php.net/manual/de/function.mysql-select-db.php und dann die query`s nur noch mit "mysql_query();" abschickst, da wenn du mal z.b. den DB namen änderst, müsstest du im ganzen script bei "mysql_db_query()" den eintrag ändern. Mit dem o.g. ansatz braucht man das nur am scriptanfang einmal ändern. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
computercrustie Geschrieben 9. Juli 2004 Teilen Geschrieben 9. Juli 2004 Der Unix-Timestamp stellt die Sekunden dar, die seit dem 01.01.1970 0:00 vergangen sind. Dass bedeutet, dass du nur ausrechnen brauchst, wieviel Sekunden deine gewünschte Zeitdifferenz hat und ziehst diese zum Vergleich von dem aktuellen Datum ab. Beispiel: <?PHP $diff = 17280; //zwei tage in sekunden 60*60*24*2 $res = mysql_query( "SELECT MAX(postdate) FROM tabelname WHERE id='1'" ); if($res) { while(list($date)=mysql_fetch_row($res)) { $color = (time()-$diff>$date) ? 'red' : 'black'; echo "<font color=\"$color\">"; echo date("d.m.Y H:i",$date)." Uhr"; echo "</font>"; } mysql_free_result($res); } ?> [/PHP] Die andere Variante wäre, MySql das für dich erledigen zu lassen: [PHP] <? $sql = " SELECT DATE_FORMAT ( FROM_UNIXTIME( MAX(postdate) ), "%d.%m.%Y %H:%i" ) AS datum, CASE WHEN UNIX_TIMESTAMP() - 17280 > FROM_UNIXTIME( MAX(postdate) ) THEN 'red' ELSE 'black' END AS color FROM tabelname WHERE id = '1' "; if ($res = mysql_query($sql)) { while(list($datum,$color)=mysql_fetch_row($res)) { echo "<font color=\"$color\">$datum Uhr</font>\n"; } mysql_free_result($res); } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Beagol Geschrieben 9. Juli 2004 Autor Teilen Geschrieben 9. Juli 2004 Hey kills , Danke! Klappt hervorragend! Deinen Rat: [quote=kills es ist ausserdem besser, wenn man am anfang des scripts folgende funktionen aufruft: mysql_connect(...); http://de.php.net/manual/de/function.mysql-connect.php mysql_select_db(..); http://de.php.net/manual/de/function.mysql-select-db.php und dann die query`s nur noch mit "mysql_query();" abschickst, Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Beagol Geschrieben 9. Juli 2004 Autor Teilen Geschrieben 9. Juli 2004 Der Unix-Timestamp stellt die Sekunden dar, die seit dem 01.01.1970 0:00 vergangen sind. Hi crustie, danke für den Tipp. ich habe aber jetzt der einfachheit halber den Tipp von kills genommen. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 9. Juli 2004 Teilen Geschrieben 9. Juli 2004 ich habe dafür immer ein kleine include conn.inc.php oder wie dus auch immer nenn möchtest. wenn du das auf ner serite über include("inc/conn.inc"); einbindest haste die db connection immer schön da und musst dich um nix mehr kümmern. die datei sieht folgendermassen aus: <? $dbname="meineDatenbank"; $dbhost="meinHost"; //offline meist localhost $dbuser="meinUsername"; $dbpass="meinPasswort"; mysql_connect($dbhost,$dbuser,$dbpass) or die ("Leider ist ein Datenbankfehler aufgetreten. Bitte versuchen Sie es später noch einmal."); mysql_select_db($dbname) or die ("Leider ist ein Datenbankfehler aufgetreten. Bitte versuchen Sie es später noch einmal."); ?> jo, und dann biste verbunden Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Beagol Geschrieben 9. Juli 2004 Autor Teilen Geschrieben 9. Juli 2004 jo, und dann biste verbunden Jo, das seh ich auch so. Nur damit ist meine Frage nach der Übergabe der Variablen nicht geklärt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 9. Juli 2004 Teilen Geschrieben 9. Juli 2004 huh? sorry, ich glaub die ganze woche lang stand ich nur aufm schlauch...siehs mir nach. leider kann ich immer noch nicht sehen an wen oder was du welche variable übergeben möchtest. aber ich helfe dir gerne! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Beagol Geschrieben 10. Juli 2004 Autor Teilen Geschrieben 10. Juli 2004 aber ich helfe dir gerne! Das ist lieb! also folgendes. Ich setzte ja die Verbindung zur Datenbank in eine Variable ($db_selectrd):$db_selected = mysql_select_db(usr_web495_1, $db); Hier will ich die dann wieder aufrufen: $result1 = mysql_db_query("hier muß doch die Varibale aufgerufen werden, 0der?","SELECT max( news_start ) FROM [/PHP] Klappt aber nicht. Ich habe schon alles probiert. Mit Hochkommata, ohne, mit doppelten Hochkommata..... Irgendwas mach ich falsch. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 10. Juli 2004 Teilen Geschrieben 10. Juli 2004 also nochmal von vorne: <?php // Der PHP-StartTag gehört hier hin $db_name = "usr_web495_1"; $db_user = "meinDBUser"; $db_password = "meinDBPasswort"; $db_server = "meinDBServer"; $db = mysql_connect($db_server,$db_user,$db_passwort); if (!$db) { die('Die Verbindung zum DBMS ist nicht möglich.<br> mySql Fehler: ' . mysql_error()); } $db_selected = mysql_select_db($db_name); // hier brauchst du nur die DB angeben! if (!$db_selected) { die('Das System kann die Datenbank "'. $db_name .'" nicht benutzen.<br> mySql Fehler : ' . mysql_error()); // hier mit der variable $db_name } // Warum hattest du hier das <?php $now = mktime(); $result1 = mysql_db_query("usr_web495_1","SELECT max( news_start ) FROM usr_web495_1_news WHERE `news_catid` = '1' "); while($row1 = mysql_fetch_row($result1)) { // Sekunden Pro Tag: 86400 // 2 Tage: 172800 $Color = $now - $row1[0] > 86400 ? "black" : "red"; echo "<span style=\"color: $Color;\">"; echo strftime(" %d.%m.%Y %R", $row1[0]) ."Uhr"; echo "</span>"; } ?> [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 10. Juli 2004 Teilen Geschrieben 10. Juli 2004 Da Du ja mysql_select_db nimmst, brauchst Du nicht umbedingt mysql_db_query dort reicht dann ein einfaches mysql_query. Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Beagol Geschrieben 11. Juli 2004 Autor Teilen Geschrieben 11. Juli 2004 Da Du ja mysql_select_db nimmst, brauchst Du nicht umbedingt mysql_db_query dort reicht dann ein einfaches mysql_query. Frank Ach so. Daher lautet dann der Sting so ? $result1 = mysql_query("SELECT max( news_start ) FROM usr_web495_1_news WHERE `news_catid` = '1' "); Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 11. Juli 2004 Teilen Geschrieben 11. Juli 2004 Genau so. Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.