php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.12.2004, 12:54  
Gast
 
Beiträge: n/a
Standard Alle Einträge eines Bestimmten Jahres Anzeigen....

Hallo,

ich kenne mich nicht besonders gut aus aber ich schildere mal mein Problem.

Ich habe eine PHP gesteuerte News Seite welche die News immer aus einer Datenbank ausliest. Da mittlerweile News von mehr als 2 Jahren
darin enthalten sind würde ich diese gerne pro Jahr aufteilen...

So würde ich mich freuen wenn mir jemand einen Befehl nennen könnte
mit dem ich mir alle Einträge zb. aus 2003 anzeigen lassen könnte.

Am besten wäre es wenn es über eine Variable in der URL funktionieren würde. zb. news.php?year=2003

Momentan sieht mein script so aus.:

Code:
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ("Konnte keine MySql-Verbindung aufbauen");
        mysql_select_db($dbname, $conn) or die ("Konnte die MySql-Datenbank nicht auswählen");

        print"<TABLE WIDTH=\"100%\" ALIGN=center border=\"$border\">\n";

		$entries = mysql_num_rows(mysql_query("SELECT id FROM $dbtable"));
     		if($entries=='0')
    		{
      		  	echo "<tr><TD>Leider haben wir derzeit keinerlei News vorliegen.</TD></tr>\n";
      		}

		$res=mysql_query("SELECT * FROM $dbtable ORDER BY id DESC LIMIT 0,1000") or die();
		
		while($con=mysql_fetch_array($res,MYSQL_ASSOC))
       		{
       	     		$jahr = substr($con[time],0,4);
          			$monat = substr($con[time],4,2);
      	        	$tag = substr($con[time],6,2);

			$datum = "$tag.$monat.$jahr";			

			print"<tr><TD BORDER=\"1\" BGCOLOR=\"#CCCCCC\">$datum: $con[subject]</A></TD></tr>\n";
			print"<tr><TD BORDER=\"1\" BGCOLOR=\"#EEEEEE\">$con[body]</TD></tr>\n";
			print"<tr><TD></TD></tr>\n";
		}
		print"</TABLE>\n";
Ich würde mich freuen wenn mir jeman helfen könnte.

gruß Jahn
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.12.2004, 13:00  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wie ist das datum abgespeichert? welcher MySQL-datentyp?

schau mal hier rein:
http://dev.mysql.com/doc/mysql/de/Da...ime_types.html

und in dem zuge auch mal hier:
http://dev.mysql.com/doc/mysql/de/Da...functions.html
imported_Ben ist offline  
Alt 28.12.2004, 13:19  
Gast
 
Beiträge: n/a
Standard

Zuerst die Gegenfrage: welches Format hat das Datenbankfeld "time"? Es sieht stark nach timestamp aus (im Moment z.B. 20041228130300), obwohl ich DATE bevorzuge...
Nichtsdestotrotz: mach doch den Stringvergleich:

Alle Zahlen zwischen 20030101000000 und 20031231235959 gehören zum Jahr 2003, also musst du nur die SQL-Anweisung dahingehend anpassen:
... WHERE time >= '20030101000000' AND time <= '20031231235959'

Wie man leicht erkennen kann, ändern sich die anderen Zahlen (Monate, Tage, Stunden, Minuten, Sekunden) nicht, wenn dich ein anderes Jahr interessiert, daher kannst du $jahr auch per URL übergeben und dir die Strings basteln:

PHP-Code:
$ersterTag $jahr."0101000000";
$letzterTag $jahr."1231235959"
Dadurch wird die SQL-Anweisung auch besser lesbar:
... WHERE time >= '$ersterTag' AND time <= '$letzterTag'

Alternativ geht auch:
... WHERE time LIKE '$jahr%'

(alles nach $jahr wird ignoriert)

Alles klaro?

Frohen Jahreswechsel, Zedda
 
Alt 28.12.2004, 13:20  
Gast
 
Beiträge: n/a
Standard

Hallo,

ich habe MySQL 4.0.20 bei puretec gehostet.
Das Datum ist in folgendem Format gespeichert:
20041001125448, timestamp(14)

Ich hoffe das hilft weiter.

gruß Jahn
 
Alt 28.12.2004, 13:35  
Gast
 
Beiträge: n/a
Standard mach ich was falsch?

hi,

ich habe es nun so eingefügt aber es klappt nicht.
Code:
$ersterTag = $jahr."20030101000000"; 
		$letzterTag = $jahr."20031231235959"; 

		$res=mysql_query("SELECT * FROM $dbtable ORDER BY id DESC LIMIT 0,1000 WHERE time >= '$ersterTag' AND time <= '$letzterTag'") or die();
gruß Jahn
 
Alt 28.12.2004, 14:00  
Gast
 
Beiträge: n/a
Standard

Schon versucht, den ORDER-Befehl an den Schluss zu stellen?
 
Alt 28.12.2004, 15:15  
Gast
 
Beiträge: n/a
Standard Vielen Dank

super vielen Dank.

nun habe ich es geschafft werde nun noch etwas feilen müssen doch das große problem ist erstmal behoben.

gruß jahn
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mehrere div's mit gleichen ID anzeigen / ausblenden phpbeginner HTML, Usability und Barrierefreiheit 9 06.09.2007 02:48
Baumstruktur anzeigen PHP-Fortgeschrittene 13 31.03.2006 21:37
nur bestimmten teil von php anzeigen se-clan PHP Tipps 2007 6 31.10.2005 20:52
Bild zu einer bestimmten Zeit anzeigen PHP Tipps 2005-2 26 31.08.2005 17:13
Daten aus Datenbank auslesen und in PHP-Seite anzeigen PHP Tipps 2005-2 1 28.08.2005 20:16
Bestimmte elemente nur zu bestimmten Daten anzeigen lassen PHP Tipps 2005-2 3 14.07.2005 14:05
Emails anzeigen mit PHP Tobias Beitragsarchiv 43 04.04.2005 06:57
Bilder nach Namen anzeigen PHP Tipps 2005 11 06.03.2005 15:41
bestimmten string aus spalte auslesen aircrash PHP Tipps 2005 3 01.02.2005 18:07
Bilder Automatisch anzeigen lassen? test022 PHP Tipps 2004-2 7 23.12.2004 00:11
Formular nach UPDATE anzeigen PHP Tipps 2004-2 5 22.12.2004 02:06
[Erledigt] Cookie - Seite anzeigen / nicht anzeigen PHP Tipps 2004-2 2 11.11.2004 15:59
Doppelte Datensätze anzeigen! Datenbanken 3 25.09.2004 17:42
Alle Datenbanken und Tabellen anzeigen anzeigen imported_Lumio PHP Tipps 2004 4 13.09.2004 14:26
Bestimmte wörter mit CSS in einer Bestimmten Farbe Färben... imported_DJ Nuno HTML, Usability und Barrierefreiheit 12 18.08.2004 10:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
alle db einträge aus einem monat php, time von einträgen anzeigen mysql, sql alle tage eines jahres, datensatz mit bestimmten datum anzeigen sql, alle montae und jahr ausgeben sql, alle monate und jahr ausgeben sql, sql bei datum nur das jahr ausgeben, sql alle eintragungen aus bestimmtem jahr auslesen, mysql limit nur datensätze mit bestimmten wörtern anzeigen, dir nur aus einem bestimmten jahr anzeigen, php mysql limit nur auf bestimmte elemente, alle einträge mit bestimmtem datum auflisten, sql alle einträge bis zu bestimmten datum, mysql einträge aus bestimmten jahr, php sql termine jährlich anzeigen, php content ausblenden nach gewisser zeit mysql timestamp, mysql, datum eingrenzen, sql eintrag eines bestimmten jahres, php alle einträge anzeigen mit gleichem, php bestimmter tag sql

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:51 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.