Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   Einträge von Heute aus einer MySQL DB auslesen. (https://boardunity.de/eintr-ge-heute-mysql-db-auslesen-t2551.html)

Daniel Richter 05.11.2004 19:09

Einträge von Heute aus einer MySQL DB auslesen.
 
Hallo zusammen.

Für TVBlogger möchte ich gerne die Titel der heute erstellten Artikel ausgeben lassen. Das ist auch alles kein Problem, es hängt nur an dem "Heute". Wie kann ich überprüfen, dass die Artikel wirklich von Heute sind?

Es muss in der Theorie ja so sein:

Code:

WHERE post_date = 'Datum von Heute'
Doch wie mache ich sowas? Denn das Problem, an dem Frederic und ich uns schon die Zähne ausgebissen haben, ist dass das MySQL Feld, in dem das Datum und die Uhrzeit gespeichert wird, ein 'datetime' Typ ist mit folgendem Format: 0000-00-00 00:00:00

Wie kann ich jetzt überprüfen, ob der Eintrag von Heute ist?

Xenon 05.11.2004 19:13

Code:

WHERE post_date >= '" . date('Y-m-d') . " 00:00:00' AND post_date <= '" . date('Y-m-d') . " 23:59:59'
gibt zwar nen andren weg, auch, aber ohne nachzusehn fällt mir grade der hein ^^

codethief 05.11.2004 19:20

Du speicherst vorher Jahr, Tag und Monat in einer Variablen:
PHP-Code:

$today date("Y-m-d"); // Datum von heute im Format JJJJ-MM-TT
$query mysql_query("SELECT ... WHERE post_date > '".$today." 00:00:00'"); 

Ich bin mir jetzt nicht sicher, ob dein Format (0000-00-00 00:00:00) dem "JJJJ-MM-TT"-Format entspricht, evtl. musst du die date()-Funktion eben noch etwas anpassen.
Der WHERE-Ausdruck prüft einfach, ob es einen Post gibt, dessen Datum größer als der heutige Tag um 0 Uhr ist, also der von heute ist.

Ich bin mir allerdings nicht sicher, ob das so funktioniert, da ich mit datetime-Feldern noch nie gearbeitet habe.
Im Zweifelsfall gibt es ja aber immer noch das Manual:
http://de3.php.net/manual/de/function.date.php



Bis dann,

codethief

Xenon 06.11.2004 16:24

@codethief: erm, hab ich das nicht schon geschrieben? ^^

ausserdem funzt dein code nicht ganz, da er ja auch ergebnisse von morgen, übermorgen usw liefern würde. (Zumindest theoretisch, wenn es solche denn gibt) ^^

Xenon 06.11.2004 16:28

hab jetzt mal kurz nachgesehn, schöner sieht der code aus:

Code:

WHERE DATE(post_date) = '" . date('Y-m-d') . "'

Daniel Richter 06.11.2004 16:57

Gut das hat auch bestens geklappt, aber ich habe da noch ein anderes kleines Problem:

Es werden jetzt nur die Einträge von heute angezeigt. Das mache ich mit folgendem Code:

Code:

<h5 class="title">Heutige Meldungen</h4>
<ul class="menu-reads">
<?php get_recent_posts(); ?>
</ul>

Das Problem ist aber, wenn es keine Meldungen am heutigen Tage gibt wird die Tabelle Leer angezeigt. Also zumindest steht die Überschrift "Heutige Meldungen" noch da.

Dazu habe ich mir eine IF Schleife in dem Template überlegt:

Code:

<?php
if ($keinenews != 1) {
echo'<br />
<h5 class="title">Heutige Meldungen</h4>
<ul class="menu-reads">';

get_recent_posts();
echo'</ul>
<br />';
?>

In der Hack Datei, wo auch die Funktion "get_recent_posts()" für die heutigen Meldungen drin sind habe ich das so realisiert:

Code:

if($result == FALSE) { 
 
    $keinenews = "1"; 
 
} else { 
 
    foreach ($posts as $post) { 
        $post_title = stripslashes($post->post_title); 
        $permalink = get_permalink($post->ID); 
        $output .= $before . '<a href="' . $permalink . '">' . $post_title . '</a>' . $after; 
    } 
    echo $output; 
}

$result ist halt der Query. Der wird überprüft ob der okay ist oder leer.
Aber es entsteht immer wieder dieser Fehler:

Parse error: parse error, unexpected $ in /www/htdocs/tvblog/index.php on line 178



Wie krieg ich den gewünschten Effekt hin?



P.S: Ich hoffe ihr habt mich alle verstanden ;)

codethief 07.11.2004 13:24

@Xenon: Ich hab mir wohl zu viel Zeit beim Antworten gelassen. ^^
Theoretisch würde er sie auch von morgen anzeigen, ja - daran hab ich auch erst gedacht und hatte auch erst eine entsprechende Bedingung eingefügt, auf Grund von Sinnlosigkeit hab sie dann jedoch wieder entfernt.

@Daniel Richter:
Zitat:

Zitat von Daniel Richter
IF Schleife

Sag bitte nie wieder dieses böse Wort. if ist zwar ein Sprachkonstrukt, aber niemals eine Schleife!
Wie im BU Channel schon gesagt, konnte ich auf den ersten Blick keinen Fehler entdecken.
Zitat:

Zitat von Daniel Richter
Parse error: parse error, unexpected $ in /www/htdocs/tvblog/index.php on line 178

Und welche Zeile ist das?



Bis dann,

codethief

Daniel Richter 07.11.2004 13:58

Okay ich habs geschafft! 3 Tage hab ich dran gesessen und nun hab ichs endlich gepackt!

Danke an alle, die mir helfen wollten *g*

afool 08.11.2004 13:49

ja, nur beim nächsten mal, wenn dir jemand helfen soll und du dein problem selber löst, wäre es vielleicht sinnvoll VORHER bescheid zu sagen, bevor derjenige wild über den ftp pflügt und einen nicht vorhandenen fehler sucht - hätte dich eine mail gekostet... das ist schlechter stil!

Daniel Richter 08.11.2004 15:27

Wenn du Sascha bist, dann habe ich dir auf deine Mail geantwortet und dir gesagt, dass ich es selbst hinbekommen habe. Du hattest mich nach dem ACP Zugang gefragt und kurz danach hab ich es geschafft.

Also nicht aufregen und Posteingang durchschauen ;)

Xenon 08.11.2004 17:57

Off-Topic:
Solche sachen dann in der Öffentlichkeit klären zu wollen, zeugt ebenfalls nicht von gutem Stil ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25