TOPIC:

Fortlaufende (interne) Nummer für eine Anfrage möglich? 2 months 1 week ago #262498

  • Eddy.vh's Avatar
  • Eddy.vh
  • Offline
  • Ultimate Breezer
  • Ultimate Breezer
  • Posts: 664
  • Karma: 4
  • Thanks: 112
Hi Shuffle,

Ich habe verstanden. Mein Fehler…

Du schickst in der Datenbank den Wert "Präfix + 2 Buchstaben + snr".
In der Datenbank handelt es sich dann nicht mehr um eine numerische Zeichenfolge, sondern um eine alphanumerische Zeichenfolge. Da der "MAX"-Wert der mySql-Abfrage nicht vernünftig ausgewählt werden kann, funktioniert das Script nicht oder nur einmal.

Man müsst nur den numerischen Wert in der Datenbank erfassen und daher, wie in meinem ersten Skript, mit zwei Feldern arbeiten, einem numerischen Feld, auf dem wir die Schrittweite aufbauen.
Und ein Feld, das aus dem Präfix, den zufälligen Buchstaben und der Nummer besteht.

Tut mir leid, ich hatte mein 2. Skrip nicht genug getested.

Zu tun.

Das Feld snr umbenennen al "auftragsnummer" z.B.
Ein neues Feld hinzufügen (als 1. im Form z.B.) genannt "snr".
Den Skripe so umschreiben :
$this->execPieceByName('ff_InitLib');
$db = JFactory::getDBO();      // Zugriff auf die Datenbank
$db->setQuery('SELECT MAX(value) FROM #__facileforms_subrecords where name = "snr"');       // snr ist der Name des Feldes, das die Seriennummer erhält
$result = $db->loadResult();

$praefix = "P382";

if ( $result != '' ) {
   $result = $result + 1;    // Test ob das Datenbankfeld einen Wert enthält. Wenn ja, wird die Wert mit 1 erhöht

}
else {
    $result = "00001";   // Wenn nicht, fangen wir mit "1" an
}
// Hier noch einbauen, dass bei Erreichen von "99999" wieder auf "0" gesetzt wird! !!!!!! da man immer die höchste Wert von der DB aufruft, ist das nicht machbar !!!!!

//zwei Zufallsbuchstaben:
$buchstaben = chr( mt_rand( 97 , 122 )).chr( mt_rand( 97 , 122 ));

$trennung = "-" ;

$strResult = sprintf("%05d", $result); // Wenn die Serienr weniger als 5 Ziffern

ff_setValue('snr', $result); // Seriennummer ins Feld "snr" senden
ff_setValue( 'auftragsnummer', $praefix.$buchstaben.$trennung.$strResult); // Präfix + Seriennummer in Feld "auftragsnummer" senden.

Das wir besser funktionieren :)

Das mit wieder auf 0 setzen wenn 99999 erreicht ist wird nicht so machbar da man immer erst die höchste Wert vom DB aufruft…

Schönes Wochenende.

Please Log in or Create an account to join the conversation.

Last edit: Post by Eddy.vh.

Fortlaufende (interne) Nummer für eine Anfrage möglich? 2 months 6 days ago #262502

  • Topic Author
  • Shuffle
  • Offline
  • Fresh Breezer
  • Fresh Breezer
  • Posts: 19
  • Thanks: 0
Hallo Eddy,
wieso arbeitest du überhaupt mit der "max()"-Funktion beim Auslesen aus der Datenbank? Kann man nicht einfach den letzten vorhandenen Eintrag "snr" (also aus dem letzten Datensatz) aus der Datenbank auslesen?

In dBase wäre das:
use datenbank // öffne db
go bottom // gehe zum letzten Datensatz
var_snr = datenbank->snr // feld snr in variable
var_snr_counter = subst(var_snr, -5) // die "Ziffern" (als String) extrahieren zum addieren...

Dann könnte das Skript ohne Änderungen bleiben, so, wie es bisher läuft!
Auch das "Abfangen" und Wiederbeginnen mit der Zählung wäre doch einfach nach dem Motto:

if var_snr_counter = "99999"
var_snr_counter = "00000"
endif
// und alles beginnt von vorne....

(diese Änderung natürlich VOR dem Addieren von "1", damit die Zählung wieder bei eins beginnt.)
---
Wie bekommt man "snr" aus dem letzten vorhandenen Datensatz aus der Datenbank, ohne den eigentlichen Inhaltswert zu betrachten?
Das wäre doch die einfachste Lösung, oder?
Wie mehrfach geschrieben: Ich habe keinen Plan von php/mysql etc. (leider)...

Vielen Dank für deine Zeit!
Beste Grüße
Shuffle

Please Log in or Create an account to join the conversation.

Fortlaufende (interne) Nummer für eine Anfrage möglich? 2 months 6 days ago #262506

  • Eddy.vh's Avatar
  • Eddy.vh
  • Offline
  • Ultimate Breezer
  • Ultimate Breezer
  • Posts: 664
  • Karma: 4
  • Thanks: 112
Moin.

Ich weiß es nicht genau, aber ich denke, es gibt weder ein ersten noch ein letzten Datensatz in einer Datenbank ... Wir können die Tabelle nach Spalten sortieren und daher ist es nicht einfach, einen letzten Datensatz zu definieren.
Vielleicht mit dem Aufnahmedatum?

Schönen Sonntag.

Please Log in or Create an account to join the conversation.

Fortlaufende (interne) Nummer für eine Anfrage möglich? 2 months 6 days ago #262508

  • Topic Author
  • Shuffle
  • Offline
  • Fresh Breezer
  • Fresh Breezer
  • Posts: 19
  • Thanks: 0
Moin Eddy,
ok. Dann entschuldige meine Unkenntnis diesbezüglich.

Aber:
Ist das hier nicht das, was ich meine, etwa in der Mitte: Letzten Eintrag auslesen?
krausens-online.de/mysql-letzten-eintrag...er-tabelle-anzeigen/

Wenn man sich mit phpMyadmin die Tabelle ansieht ist der letzte "snr"-Eintrag (ganz unten) einzulesen. Das ist nicht möglich?

Auch schönen Sonntag!
Shuffle

Please Log in or Create an account to join the conversation.

Fortlaufende (interne) Nummer für eine Anfrage möglich? 2 months 6 days ago #262509

  • Topic Author
  • Shuffle
  • Offline
  • Fresh Breezer
  • Fresh Breezer
  • Posts: 19
  • Thanks: 0
Nachtrag: Ich denke, du hast recht.
Es gibt keine Funktion für einen letzten Datensatz.
Aber:
www.datenbanken-verstehen.de/sql-funktio...mysql-last-funktion/
möglich?

Nochmals beste Grüße
Shuffle

Please Log in or Create an account to join the conversation.

Fortlaufende (interne) Nummer für eine Anfrage möglich? 2 months 6 days ago #262511

  • Topic Author
  • Shuffle
  • Offline
  • Fresh Breezer
  • Fresh Breezer
  • Posts: 19
  • Thanks: 0
Moin nochmals,
das Ganze habe ich gerade mal versucht nachzuvollziehen, aber dazu fehlen mir einfach zu viele Grundkenntnisse im Umgang mit dem Thema.

Damit du auch keine Arbeit mehr investieren brauchst, werde ich versuchen, deine letzte Lösungsmöglichkeit umzusetzen (Post #262498).

Vorerst Danke und Gruß
Shuffle

Nachtrag: Ich habe gerade eine Zahlung veranlasst. Die ging nun an den Support (erhaltene E-Mail). Ich hoffe, du "siehst" etwas davon?

Please Log in or Create an account to join the conversation.

Last edit: Post by Shuffle.
Moderators: ForumSupport
Time to create page: 0.054 seconds

BreezingForms Pro 1.4.7 for WordPress Released!

Available in the membership section.

September Discount!

Massive discounts on all subscriptions!

Get Your Subscription Here

Quick Links

Downloads

BreezingForms

ContentBuilder

BreezingCommerce

Templates

Documentation

BreezingForms

ContentBuilder

BreezingCommerce

Apprendre BreezingForms (French Community)

Apprendre et maîtriser BreezingForms par des tutoriels et exemples, le tout en français

breezingforms.eddy-vh.com

Questions et réponses sur les forums de l'AFUJ

AFUJ

Special Offer

Summer Sale! All subscriptions at a special price!

Includes prio support, all of our current and future Joomla!® extensions and Joomla!® templates for the duration of your membership.

Get it from here

3rd Party Discount - 25% Off

We help you to keep your costs under control. If you are a new member and purchased a form building tool from a different form vendor, then you'll get a 25% discount on our subscription plans.

How to receive the discount:

Send us a quick email to sales@crosstec.org with a proof of purchase (for example a paypal receipt), await payment instructions and enjoy your membership!