php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 05-10-2005, 19:07
kasIQ
 Registrierter Benutzer
Links : Onlinestatus : kasIQ ist offline
Registriert seit: Mar 2005
Beiträge: 148
kasIQ ist zur Zeit noch ein unbeschriebenes Blatt
Smile Archiv erstellen

Hallo Leute,

versuche gerade ein news archiv zu erstellen welches die Daten nach Jahr und Monat des Eintrages sortiert.
Doch ich hänge schon daran fest, daß automatisch nur einmal die Jahre angezeigt werden sollen, aus welchem die News sind.
Dh. ich habe verschiedene Einträge aus 2005 und 2004 und 2003.
Nun kann ich die mir ja alle geordnet anzeigen lassen
PHP-Code:
$sql "Select datumein from news order by datumein desc ";
da stehen dann meinetwegen 20 Einträge von 2005 und 400 aus 2004 
Das ist ja nicht so schwer. Doch möchte ich das geschaut wird welche Jahre vorhanden sind und nur einmal die verschiedenen Jahre angezeigt bekommen. diese Sollen dann später als Links zu den verschiedenen Einträgen zeigen.
Im endeffekt soll es ähnlich werden wie bei http://www.phpwelt.de/news/narchiv.php
Mit Zitat antworten
  #2 (permalink)  
Alt 05-10-2005, 19:24
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

von welchem typ ist datumein?
Mit Zitat antworten
  #3 (permalink)  
Alt 05-10-2005, 19:44
kasIQ
 Registrierter Benutzer
Links : Onlinestatus : kasIQ ist offline
Registriert seit: Mar 2005
Beiträge: 148
kasIQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Der typ ist UNIX_TIMESTAMP in der Form
20051005163542

Mein Code und die Funktion um das Jahr zu sondieren ist
PHP-Code:
$sql "Select datumein from news order by datumein desc ";
...

while(
$row=mysql_fetch_array($result)){
$jahr=substr($row['datumein'],0,4);
echo 
$jahr.'<br>';

Da steht nun alles da, habe nun versucht mit irgendwelchen schleifen
die Jahre zu sondieren, daß nur einmal 2005 oder 2004 dasteht, aber ich dreh mich im kreis.
Mit Zitat antworten
  #4 (permalink)  
Alt 05-10-2005, 19:54
kasIQ
 Registrierter Benutzer
Links : Onlinestatus : kasIQ ist offline
Registriert seit: Mar 2005
Beiträge: 148
kasIQ ist zur Zeit noch ein unbeschriebenes Blatt
Smile ich glaub ich hab's

PHP-Code:
$i=1;
while(
$row=mysql_fetch_array($result)){
    
$jahr[$i]=substr($row['datumein'],0,4);
    if(
$jahr[$i] != $jahr[$i-1]){        
        echo 
$jahr[$i]." ".$i.'<br>';
    }
$i++;

Mit Zitat antworten
  #5 (permalink)  
Alt 05-10-2005, 19:58
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

warum den ganzen müll mit php machen?

Code:
SELECT
    LEFT(datumein,4) NewsJahr,
    COUNT(datumein) NewsCount
FROM
    news
GROUP BY
    NewsJahr
ORDER BY
    NewsJahr
(ungetestet)
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #6 (permalink)  
Alt 05-10-2005, 19:59
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Der typ ist UNIX_TIMESTAMP in der Form
20051005163542
na was denn jetzt? Unix oder Mysql? sieht doch eher nach MySQL-Timestamp aus.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 05-10-2005, 20:10
kasIQ
 Registrierter Benutzer
Links : Onlinestatus : kasIQ ist offline
Registriert seit: Mar 2005
Beiträge: 148
kasIQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja es ist mysql timestamp ..mein Fehler
Mit Zitat antworten
  #8 (permalink)  
Alt 05-10-2005, 20:13
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

und meine frage beantwortest du nicht?
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #9 (permalink)  
Alt 05-10-2005, 20:21
kasIQ
 Registrierter Benutzer
Links : Onlinestatus : kasIQ ist offline
Registriert seit: Mar 2005
Beiträge: 148
kasIQ ist zur Zeit noch ein unbeschriebenes Blatt
Smile doch doch

ja also mit meiner 56k Verbindung ist nicht immer alles so leicht .
Abraxax habe gerade mal deinen Vorschlag ausprobiert, aber da zeigt ermir gar nix mehr an .
Ich wusste auch noch nicht, daß ich in einer Abfrage Variablen zuordnen kann was du ja anscheinend "LEFT(datumein,4) NewsJahr," machst.
Oder?
Na jedenfalls funzt das noch nicht so recht.
Mit Zitat antworten
  #10 (permalink)  
Alt 05-10-2005, 20:29
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

versuch erst
Code:
SELECT LEFT(`datumein`,4) FROM `news`
teste mit pma.
Mit Zitat antworten
  #11 (permalink)  
Alt 05-10-2005, 20:36
kasIQ
 Registrierter Benutzer
Links : Onlinestatus : kasIQ ist offline
Registriert seit: Mar 2005
Beiträge: 148
kasIQ ist zur Zeit noch ein unbeschriebenes Blatt
Smile mein Fehler

habe dummerweise
$row['datumein']
und nicht
$row['NewsJahr']
abgefragt.

ES FUNZT! Das ist cool! Da freu ich mich. Vielen dank fürs erste.
Hoffe ich komme jetzt soweit alleine zurecht
Mit Zitat antworten
  #12 (permalink)  
Alt 05-10-2005, 20:39
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
ES FUNZT!
fein. und schon hast du etwas weniger aufwendigen php-code .....
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #13 (permalink)  
Alt 05-10-2005, 21:26
kasIQ
 Registrierter Benutzer
Links : Onlinestatus : kasIQ ist offline
Registriert seit: Mar 2005
Beiträge: 148
kasIQ ist zur Zeit noch ein unbeschriebenes Blatt
Question ich schon wieder

bin nun dabei auf die monate zuzugreifen,
habe es versucht mit
PHP-Code:
$sql_monat "SELECT LEFT(datumein,4,6) NewsMonat, 
..... 
das funzt aber auch nicht, dachte ich kann es ähnlich dem substr() versuchen.
Unter was für einem Befehl sollte ich denn im Manual nachschlagen, damit ich die Monate ähnlich den Jahren sondieren kann.
Mit Zitat antworten
  #14 (permalink)  
Alt 05-10-2005, 21:30
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

stop.

warum nimmst du nicht
Code:
SELECT YEAR(`timestampspalte`) FROM ...
bzw.
Code:
SELECT MONTH(`timestampspalte`) FROM ...

Geändert von penizillin (05-10-2005 um 21:33 Uhr)
Mit Zitat antworten
  #15 (permalink)  
Alt 05-10-2005, 21:40
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

jo. auch bitte in der von mit geposteten query aus LEFT(...,4) ein YEAR(...) machen.

@penizillin
er wollte es mir gleich machen ...

@kasIQ
was bedeutet wohl LEFT bei LEFT() ? genau. links. wie soll also was aus der mitte kommen? genau. gar nicht.
MID() wäre das gesuchte. tipp: mysql.com

und verwende bitte YEAR() und MONTH(). das ist i.d.t. besser.
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

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