Archiv verlassen und diese Seite im Standarddesign anzeigen : News anzeigen die....
nicht älter als zwei Monate sind bzw die älter als zwei Monate sind.
Habe die News meiner HP in eine Datenbank eingepflegt, nun möchte ich aber nicht alle News angezeigt bekommen sondern nur die, die nicht älter als zwei Monate sind, sind alle älter als zwei Monate sollen nur die letzten zwei angezeigt werden. Im Archiv sollen nur die News angezeigt werden die älter als zwei monate sind.
Tabellenbestandteile sind News_datum, news_titel und news_text sowie news_id
wäre schön wenn mir jemand helfen könnte...
Bist Du böse auf mich? :(
$result = mysql_query("SELECT * FROM TABELLE where News_datum > DATE_SUB(now(), INTERVAL 2 MONTH)");
http://www.php-resource.de/forum/showthread.php?threadid=7876
http://www.php-resource.de/forum/showthread.php?threadid=5218&highlight=hour
Funktioniert soweit so gut aber ich will ja wenn keiner jünger als 2 Monate ist die letzten 2 anzeigen...wie kriegen wir das hin?
hat denn keiner eine Lösung für mich?
ohne ein 2. Select wird das nicht funktionieren.
Soweit war ich auch schon kriege die Abfrage aber net hin..
schmalle 03-06-2002, 12:03 na dann woll´n wa mal :)
$result = mysql_query("SELECT * FROM TABELLE where News_datum > DATE_SUB(now(), INTERVAL 2 MONTH)");
if(mysql_num_rows($result) < 1) {
$result = mysql_query("select * from tabelle order by datum DESC limt 2");
}
while($row = mysql_fetch_array($result)) {
[..]
}
der mag das mysql_num_rows net... gibt ne Fehlermeldung....
ich poste dir das ganze mal
$sel = "SELECT * FROM news WHERE NEWS_DATUM > DATE_SUB(now(), INTERVAL 2 MONTH) ORDER BY NEWS_DATUM ASC";
if(mysql_query($sql, $verbindung))
{
$erg=mysql_query($sel, $verbindung);
if($erg)
{
$x=0;
if(mysql_num_rows($sel) < 1) {
$result = mysql_query("select * from tabelle order by datum DESC limt 2");
}
while($row = mysql_fetch_array($result)) {
$x++;
[...]
$anz =mysql_num_rows($erg);
}
}
}
habe das mit meinen vorhandenen zusammengestückelt...kann gut sein das da jetzt noch ein Fehler drin ist
schmalle 03-06-2002, 12:20 setz mal das $anz = mysql_num_rows() vor die while(). falls der fehler bleibt, poste ihn mal. lass ihn mit mysql_error() mal genauer ausgeben.
hab es....
$sel = "SELECT * FROM news WHERE NEWS_DATUM > DATE_SUB(now(), INTERVAL 2 MONTH) ORDER BY NEWS_DATUM ASC";
if(mysql_query($sql, $verbindung))
{
$erg=mysql_query($sel, $verbindung);
if($erg)
{
$x=0;
if(mysql_num_rows($erg) < 1) {
$erg = mysql_query("SELECT * FROM news ORDER BY NEWS_DATUM DESC LIMIT 2");
}
while($zeile = mysql_fetch_array($erg)) {
$x++;
[...]
$anz =mysql_num_rows($erg);
}
}
}
so und jetzt brauche ich das Ganze noch einmal genau anders herum nur die die älter als 2 Monate sind...
schmalle 03-06-2002, 12:36 ist das so recht? :)
$result = mysql_query("SELECT * FROM TABELLE where News_datum < DATE_SUB(now(), INTERVAL 2 MONTH)");
argh... und ich habe gerade überlegt was das Gegenteil von Interval 2 Month sein könnte *vor den Kopf hau*
Hab aber noch was... das Datum kommt ja jetzt 2002-05-28 raus...wie kriege ich das ans deutsche angepaßt da gibbet doch bestimmt schon nen Codeschnipsel für *sucht*
schmalle 03-06-2002, 12:45 select date_format(DATUMSFELD, '%d.%m.%Y) from tabelle
hmm das klappt net dann funktioniert ja die restliche Abfrage nimmer....
schmalle 03-06-2002, 13:03 das geht man muss es nur wollen :)
zu beachten ist, dass du in deiner while das datumsfeld nicht mehr mit $row[datumsfeld] ansprechen kannst. sondern nur noch mit row[NUMMER_DES_FELDES] die felder, die du per select ansprichst, musst du zählen ( beginned bei null ).
wäre die abfrage select ID,WAS_ANDERES,date_format()
müsstest du das datumsfeld mit $row[2] ansprechen.
tu ich ja aber er gibt mir jetzt gar nix mehr aus... wenn ich in der Select das Datum ändere versteht er es in der If-abfrage anscheinend nicht mehr
Mal ein kleiner Tipp:
das:
$sel = "SELECT * FROM news WHERE NEWS_DATUM > DATE_SUB(now(), INTERVAL 2 MONTH) ORDER BY NEWS_DATUM ASC";
if(mysql_query($sql, $verbindung))
{
$erg=mysql_query($sel, $verbindung);
if($erg)
kann man auch so zusammenfassen und belastet dabei die Datenbank nicht durch 'ne 2. Abfrage:
$sel = "SELECT * FROM news WHERE NEWS_DATUM > DATE_SUB(now(), INTERVAL 2 MONTH) ORDER BY NEWS_DATUM ASC";
if( $erg=mysql_query($sql, $verbindung) ) {
schmalle 03-06-2002, 13:10 dann machen wir es eben anders.
den select, so wie er voher mal war.
dann in der while:
$stamp = strtototime($row[datum]);
echo date('d.m.Y', $stamp);
Fatal error: Call to undefined function: strtototime() in /home/www/web25/html/main.php on line 36
Original geschrieben von goth
kann man auch so zusammenfassen und belastet dabei die Datenbank nicht durch 'ne 2. Abfrage:
$sel = "SELECT * FROM news WHERE NEWS_DATUM > DATE_SUB(now(), INTERVAL 2 MONTH) ORDER BY NEWS_DATUM ASC";
if( $erg=mysql_query($sql, $verbindung) ) {
und wo wird dann die Abfrage $sel abgefragt?
schmalle 03-06-2002, 13:21 hmm, ich hatte da wohl nen tippfehler. heisst natürlich strtotime() :) kennst du die function etwa nit?
nein und ein Buch hab ich auch net da...aber den Fehler hatte ich auch schon gefunden... nur das ist ne sehr seltsame ausgabe....
das wird ausgegeben date('d.m.Y', 995407200)
schmalle 03-06-2002, 13:25 hast du das etwa in quotes gesetzt? ( die da: "" )???? mach die weg! einfach echo date('d.m.Y', $stamp);
schmalle 03-06-2002, 13:26 Original geschrieben von Aroree
ah hab es schon... heute nicht ganz auf geistiger höhe wie? :D
ne bin geistig noch im Wochenende... und hab solange kein PHP mehr gemacht...und Bücher sind alle noch in den Kartons :(
außerdem mach ich das hier zwischendurch auffer Arbeit gerade...
schmalle 03-06-2002, 13:29 bücher? was ist das denn? :) es gibt doch www.php.net und dann noch uns :D
Original geschrieben von Aroree
und wo wird dann die Abfrage $sel abgefragt?
Oh sorry ... da war ich von einem Tip-Fehler ausgegangen ... da
$sel
nirgendwo definiert war ... ! :dontknow:
du meinst sql sql und verbindung kommen aus der include-datei und sel wird doch da definiert mit dem Select
Original geschrieben von schmalle
bücher? was ist das denn? :) es gibt doch www.php.net und dann noch uns :D
stimmt aber ich schaue normalerweise auch ins Buch...das verständlicher ist als php.net
schmalle 03-06-2002, 13:34 ich vermisse an büchern immer das such-script ... blättern dauert so lange :)
ja so habe ich letztens auch schon angefangen zu denken.... furchtbar ich sitze entschieden zuviel vor dem Rechner....
ach übrigens...muß demnächst neue Bilder von mir machen... lasse mir heute die Haare abschneiden...
Original geschrieben von Aroree
du meinst sql sql und verbindung kommen aus der include-datei und sel wird doch da definiert mit dem Select
Genau ... so rum wird ein Schuh draus ...
In Deinem Beispiel stand:
$sel = "SELECT * FROM news WHERE NEWS_DATUM > DATE_SUB(now(), INTERVAL 2 MONTH) ORDER BY NEWS_DATUM ASC";
if(mysql_query($sql, $verbindung))
{
$erg=mysql_query($sel, $verbindung);
Und da war ich halt davon ausgegangen das das grüne ein TippFehler war ... :dontknow:
*lacht* nene dat stimmt schon so!
|