SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 02.12.2013, 18:57:00
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 48
Beiträge: 236
Nummerierung mit Jahreszahl - sortierungsproblem

Hallo zusammen,
ich bräuchte mal einen Denkanstoß-
Ich generiere mir via php eine fortlaufende Nummer mit Jahreszahl. Beim Jahreswechsel fange ich bei 1 an. ->

PHP-Code:
$sql select nummer from tabelle where YEAR(datum)=212 or YEAR(datum) = (2013order by nummer 
20121
20122
20123
20131
20132
20133
usw. das klappt bei der Genrierung.

Mein Problem besteht nun bei der Sortierung, sobald die Nummer > 10 werden

201110
201111
Dann sortiert der natürlich 20119, 20121...
Egal ob als string oder zahl das geht nicht. Daher habe ich die Nummer ab gespaltet und dann

sort by datum, nummer desc

Ändere ich nun von desc auf asc, passiert leider nichts. Keine Änderung. Zudem wenn ich mehr als 1 Jahr habe gehts auch nicht. Sortiere ich nur nach der nummer bekomme ich ebenfalls Probleme mit den Jahreszahlen.

20131
20129

Ohne Jahreszahl ginge auch, nur habe ich dann uU sehr schnell sehr lange Zahlen.

Wie stelle ich es an, dass ich logisch sortiere?
Mit Zitat antworten
  #2  
Alt 03.12.2013, 07:52:46
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 48
Beiträge: 236
AW: Nummerierung mit Jahreszahl - sortierungsproblem

Hoffe es ist klar geworden?
Will halt pro Jahr sortieren. Also 2012
20121
20122
20123
...
201210
201211


Und zB 2013
20131
20132
20133
...
201310
201311


Normal würde ich mit Nullen auffüllen. Nur
2013000001
2013000002
2013000003
Sieht irgendwie doof aus..
Mit Zitat antworten
  #3  
Alt 03.12.2013, 08:01:00
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 13
Beiträge: 2.269
AW: Nummerierung mit Jahreszahl - sortierungsproblem

Zitat:
Ohne Jahreszahl ginge auch, nur habe ich dann uU sehr schnell sehr lange Zahlen.
Was gibts gegen lange Zahlen zu sagen?
Mit Zitat antworten
  #4  
Alt 03.12.2013, 08:40:51
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 48
Beiträge: 236
AW: Nummerierung mit Jahreszahl - sortierungsproblem

Ganz hinten an steht eine Druckfunktion und die Nummern, wen die dann 20 Stellen haben...

Irgendeine Idee für die Sortierung? Was weiß ich Jahreszahl nach hinten oder mit Trennzeichen. Suche halt irgendeine Funktion, die alphanumerisch / menschlich sortiert.

also
1
2
3
4
5
6
7
8
9
10
11

statt
1
10
11
12
13
14
15
16
17
18
19
2

Was mir gerade so in den Sinn kommt, ist eine Hilfsspalte.

Da hinein dann zb
0000001
0000002
0000003
...
0000010

Danach sortieren und die nummer anzeigen...
Mit Zitat antworten
  #5  
Alt 03.12.2013, 08:49:24
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 13
Beiträge: 2.269
AW: Nummerierung mit Jahreszahl - sortierungsproblem

Zitat:
also
1
2
3
4
5
6
7
8
9
10
11

statt
1
10
11
12
13
14
15
16
17
18
19
2
Ein ORDER BY, auf einer numerischen Spalte tut genau das gewünschte.
Mit Zitat antworten
  #6  
Alt 03.12.2013, 09:04:34
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 48
Beiträge: 236
AW: Nummerierung mit Jahreszahl - sortierungsproblem

Wie ich im 1. Post geschrieben habe, geht das nicht, weil ich zB die 1 mehrfach habe (2013,2012,2011...)
=>
2013 1
2012 1
2011 1

Packe ich die Jahreszahl mit in die Spalte kriege ich ebenfalls Probleme ab der 2 Ziffer.
2012 1
2013 1
2013 10
2012 10
Mit Zitat antworten
  #7  
Alt 03.12.2013, 09:25:11
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 13
Beiträge: 2.269
AW: Nummerierung mit Jahreszahl - sortierungsproblem

Zitat:
Packe ich die Jahreszahl mit in die Spalte kriege ich ebenfalls Probleme ab der 2 Ziffer.
Dann lass das doch....

Du weißt, dass es nicht funktioniert.
Warum willst du es dann?

Und noch ein Argument:
Du hast eine "datum" Spalte.
Da steht das Jahr drin.
Und eine Sortierspalte, auch mit Jahr drin.
Das ist eine Redundanz, und damit ein rotes Tuch.
Eine Dummheit, es sei denn du hast gute Gründe dafür.
Genannt hast du bis jetzt keine.

Die 5 Normal Formen
Mit Zitat antworten
  #8  
Alt 03.12.2013, 14:17:49
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 48
Beiträge: 236
AW: Nummerierung mit Jahreszahl - sortierungsproblem

DokuLeseHemmung , ich finde es ja nett, dass Du Dir die Zeit nimmst und meinen Beitrag liesst.
Aber mit Antworten wie Geht nicht Lass es und Dummheit kann ich nicht viel anfangen.
Und ganz nebenbei ist es auch nicht dass was allgemein unter Forum verstanden wird.

Ich dachte eigentlich dass ich eine Antwort bekomme, wie "Nimm die Funktionen xy, die machen genau das, was Du brauchst." Oder kombinier die Abfragen 1,2, und 3.
Ähnlich wie zB "%" statt "/". Der teilt nicht einfach nur, sondern liefert mir den Rest.
Eine Lösung oder einen Anstoß (Steht im ersten Satz des ersten Posts).

Und Gründe? Andere Programmierer dürften dieselbe Problematik gehabt und irgendwie gelöst haben. Zum Beispiel um Fotos zu sortieren-

Zitat:
Du weißt, dass es nicht funktioniert.
Warum willst du es dann?
Eben weil ich es nicht weiß, darum frage ich in einem Forum!

Und ich habe keine zwei Spalten mit Jahr drinne. Es ist ein Denkansatz, dass man ein Startjahr nimmt und für alle Einträge dieses Jahres zB eine 000001 einträgt. Für alle Einträge des komenden Jahres eine 000002 usw. Oder mit A, B, C
Aber das ist noch nicht rund..

Sinn und Unsinn sei mal dahingestellt. Wie kann ich eine fortlaufende Nummer generieren, welche sich sortieren lässt und pro Jahr einen abgeschlossenen Nummernblock ergibt.
Also
2011 1-345
2012 1-257
2013 1-134
Mit Zitat antworten
  #9  
Alt 03.12.2013, 18:33:34
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 13
Beiträge: 2.269
AW: Nummerierung mit Jahreszahl - sortierungsproblem

Zitat:
select nummer from tabelle where YEAR(datum)=2012 or YEAR(datum) = (2013) order by nummer
Sowohl datum als auch nummer beinhalten das Jahr.
Zumindest habe ich es so verstanden.
Und das wäre redundant.


Zitat:
Wie kann ich eine fortlaufende Nummer generieren
LAST_INSERT_ID liefert dir eine eindeutige Zahl.

Zitat:
und pro Jahr einen abgeschlossenen Nummernblock
Wozu?

Und wenn du wirklich fortlaufende, bei 1 beginnende Nummern für das Jahr brauchst, wäre ein zusätzlicher SELECT nötig. Evtl. das ganze in einer Transaktion abgesichert, wenn es mehrere "Schreiber" geben sollte.


Zitat:
DokuLeseHemmung , ich finde es ja nett, dass Du Dir die Zeit nimmst und meinen Beitrag liesst.
Aber mit Antworten wie Geht nicht Lass es und Dummheit kann ich nicht viel anfangen.
Und ganz nebenbei ist es auch nicht dass was allgemein unter Forum verstanden wird.
In einem Forum bekommst du die Antworten, welche der Antwortende zu geben gewillt ist.
Was du damit anfängst, ist deine Sache.
Und ich, werde dich ganz sicher nicht auf einem falschen Weg bestärken.

Bedenke:
Es ist viel schwerer, was falsches aus dem Kopf zu bekommen, als das richtige zu lernen.
Also erst mal "los lassen" und dann den Acker bereiten.
Und dann, viel später kommt die Saat für die neue Ernte..
Mit Zitat antworten
  #10  
Alt 03.12.2013, 19:49:28
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.681
AW: Nummerierung mit Jahreszahl - sortierungsproblem

Zitat:
Zitat von tsunamitsunami Beitrag anzeigen
[..]
Ich dachte eigentlich dass ich eine Antwort bekomme, wie "Nimm die Funktionen xy, die machen genau das, was Du brauchst." Oder kombinier die Abfragen 1,2, und 3.
Mögliche Alternative:

Feld mit Jahreszahl (F1) und ein zweites Feld als Autoincrement (F2) und dann " ... ORDER BY F1, F2". Und fertig. Lässt sich sortieren. Abgeschlossener Nummernbereich pro Jahr usw.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

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
Antwort

Stichworte
datenbank, jahreszahl, php, sortierung


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sortierungsproblem nuletianer MySQL/MySQLi 1 24.09.2009 22:12:30
nummerierung olli PHP für Fortgeschrittene und Experten 2 17.02.2004 02:16:46


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


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.


© 2001-2021 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt