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 ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. 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 > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 22.04.2005, 08:26:04
Sen Sen ist offline
Anfänger
 
Registriert seit: Oct 2002
Ort: Köln
Beiträge: 14
AW: letzte Id bestimmen

Super! Danke.

Die Rechnungsnummern müssen nur logisch fortlaufend sein. Soweit ich weiß könnte dass auch

2005-0001
2005-0002
und im nächsten Jahr dann
2006-0001
usw. sein.

Rechnungsnummern per auto_increment zu erzeugen ist doch relativ sicher oder? Der Index kann nicht durch eine Optimize oder ähnliches durcheinander gebracht werden?

Die PHP-Lösung würde mir das Gefühl von mehr Kontrolle geben, aber da sind ja meine oben genannten Bedenken. Oder gibt es eine Möglichkeit ein Feld immer wieder upzudaten und gleichzeitig den neuen Wert zurückzugeben (ohne zwei Abfragen machen zu müssen). Irgendwie werd ich da aus der MySQL-Dokumentation nicht so richtig schlau.
Mit Zitat antworten
  #12  
Alt 02.05.2005, 17:47:58
Sen Sen ist offline
Anfänger
 
Registriert seit: Oct 2002
Ort: Köln
Beiträge: 14
AW: letzte Id bestimmen

Ok, vielleicht kann mir ja doch nochmal jemand helfen.

Ich habe eine Tabelle, die die letzte Rechnungsnummer vorgibt. Sie hat die Felder jahr, monat, nummer.

Für jeden Monat wird ein neuer Eintrag gemacht und dann soll das Feld nummer dieses Eintrages den gesamten Monat immer wieder um eins erhöht werden. Kann man das Feld nummer in ein und der selben Abfrage erhöhen und den neuen Wert zurückgeben?

Mit auto_increment läßt sich das leider nicht lösen. Die Rechnungsnummern würden irgendwann zu lang und ich müsste für jeden einzelnen Kaufvorgang einen Eintrag machen (was irgendwann eine ziemliche Datenmenge gibt).

Vielleicht seh ich auch den Wald vor lauter Bäumen nicht mehr und es gibt ne bessere Lösung.
Mit Zitat antworten
  #13  
Alt 02.05.2005, 17:55:14
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: letzte Id bestimmen

Wenn Du die Spalte der Rechnungsnummer auf BIGINT setzt, dann glaube ich kaum, dass Du jemals diesen Rahmen sprengen wirst...

BIGINT Bereich als unsigned: 0 bis 18446744073709551615
BIGINT Bereich als signid: -9223372036854775808 bis 9223372036854775807
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #14  
Alt 03.05.2005, 07:45:18
Sen Sen ist offline
Anfänger
 
Registriert seit: Oct 2002
Ort: Köln
Beiträge: 14
AW: letzte Id bestimmen

Die Länge der Zahlen in der DB ist nicht das Problem. Je nach Länge sind die nur irgendwann nicht mehr nutzerfreundlich.

Sind meine Gedanken abwegig, dass sich zwei Bestellprozesse in die Quere kommen, wenn man das per PHP löst?

Vielen Dank für die Geduld mit mir.
Mit Zitat antworten
  #15  
Alt 03.05.2005, 09:43:24
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: letzte Id bestimmen

Wenn du das so machen möchtest, brauchst du zwei Abfragen. Eine, die dir zunächst die nächste Bestellnummer ermittelt und eine zweite, die dann den Eintrag erstellt.
Mit Zitat antworten
  #16  
Alt 03.05.2005, 09:56:56
Sen Sen ist offline
Anfänger
 
Registriert seit: Oct 2002
Ort: Köln
Beiträge: 14
AW: letzte Id bestimmen

Ok. Danke. Denn werd ich mich mal an die Arbeit machen.
Mit Zitat antworten
  #17  
Alt 03.05.2005, 10:12:56
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: letzte Id bestimmen

Zitat:
Zitat von Sen
Die Länge der Zahlen in der DB ist nicht das Problem. Je nach Länge sind die nur irgendwann nicht mehr nutzerfreundlich.
Das ist aber halt ueblich. Schau dir doch mal die Rechnungen an die so bei Dir ankommen.


Zitat:
Zitat von Sen
Sind meine Gedanken abwegig, dass sich zwei Bestellprozesse in die Quere kommen, wenn man das per PHP löst?
Unmoeglich ist unmoeglich... Es ist durchaus denkbar, dass sich zwei oder mehrere Benutzer bei der Bestellung in die Quere kommen.
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #18  
Alt 03.05.2005, 10:25:30
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: letzte Id bestimmen

Zitat:
Zitat von |Coding
Unmoeglich ist unmoeglich... Es ist durchaus denkbar, dass sich zwei oder mehrere Benutzer bei der Bestellung in die Quere kommen.
Deswegen würde ich das Ganze über zwei Abfragen steuern. So kann man per LOCK TABLES verhindern, dass zwei identische Bestellnummern vergeben werden.
Mit Zitat antworten
  #19  
Alt 03.05.2005, 15:16:42
Sen Sen ist offline
Anfänger
 
Registriert seit: Oct 2002
Ort: Köln
Beiträge: 14
AW: letzte Id bestimmen

Ok, LOCK TABLES bringt mich weiter.

Eine Frage noch...Im MySQL-Handbuch habe ich nun folgendes gefunden:
Wenn Sie einen Tabellen-Handler in MySQL benutzen, der keine Transaktionen unterstützt, müssen Sie LOCK TABLES benutzen, wenn Sie sicherstellen wollen, dass kann anderer Thread zwischen einem SELECT und einem UPDATE dazwischen kommen kann. Das unten stehende Beispiel erfordert LOCK TABLES, um sicher ausgeführt zu werden...
http://dev.mysql.com/doc/mysql/de/lock-tables.html
Was ist mit dem Tabellen-Handler gemeint? Der Befehl HANDLER? Oder der in PHP benutzte Handler (z.B. $conn )?
Mit Zitat antworten
Antwort


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

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
Sortierfolge der Felder bestimmen kuechenschabe MySQLi/PDO/(MySQL) 4 01.06.2004 17:26:38
Wert eines mit auto increment gesetzten Feldes bestimmen Aichbus MySQLi/PDO/(MySQL) 3 19.08.2003 11:29:22
Bildschrimposition der Textausgabe bestimmen Steffen_76de PHP für Fortgeschrittene und Experten 2 30.05.2003 20:26:40
stringlänge bestimmen? andreas87 PHP für Fortgeschrittene und Experten 2 06.01.2003 19:00:14
auflösung des users bestimmen. DerMagier PHP für Fortgeschrittene und Experten 5 10.11.2002 14:42:02


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


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


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