Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
News anzeigen die.... [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
News anzeigen die....


 
Aroree
02-06-2002, 21:19 
 
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...

 
hand
02-06-2002, 21:24 
 
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

 
Aroree
02-06-2002, 21:47 
 
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?

 
Aroree
03-06-2002, 11:02 
 
hat denn keiner eine Lösung für mich?

 
Berni
03-06-2002, 11:58 
 
ohne ein 2. Select wird das nicht funktionieren.

 
Aroree
03-06-2002, 11:59 
 
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)) {

[..]
}

 
Aroree
03-06-2002, 12:15 
 
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.

 
Aroree
03-06-2002, 12:24 
 
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);
}
}
}

 
Aroree
03-06-2002, 12:30 
 
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)");

 
Aroree
03-06-2002, 12:39 
 
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

 
Aroree
03-06-2002, 12:51 
 
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.

 
Aroree
03-06-2002, 13:07 
 
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

 
goth
03-06-2002, 13:09 
 
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);

 
Aroree
03-06-2002, 13:18 
 
Fatal error: Call to undefined function: strtototime() in /home/www/web25/html/main.php on line 36

 
Aroree
03-06-2002, 13:20 
 
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?

 
Aroree
03-06-2002, 13:23 
 
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)

 
Aroree
03-06-2002, 13:25 
 
ah hab es schon...

 
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

 
Aroree
03-06-2002, 13:27 
 
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

 
goth
03-06-2002, 13:30 
 
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:

 
Aroree
03-06-2002, 13:33 
 
du meinst sql sql und verbindung kommen aus der include-datei und sel wird doch da definiert mit dem Select

 
Aroree
03-06-2002, 13:33 
 
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 :)

 
Aroree
03-06-2002, 13:37 
 
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...

 
goth
03-06-2002, 13:38 
 
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:

 
Aroree
03-06-2002, 13:40 
 
*lacht* nene dat stimmt schon so!


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:05 Uhr.