Antwort #22 am: 23. Oktober 2015, 18:15:20
Das ist alles ein wenig Gefrickel hier, nicht ?
GOOD-TASTE, du brauchst keine Angst zu haben etwas kaputt zu machen.
- Das Feld customers_cid sollte unbedingt den Type INT(11) bekommen.
- Der FULLTEXT-Index auf das Feld customers_cid muß weg, statt dessen einen normalen Index setzen (Erklärung, s.u. *1)
- Den Code einfach halten, s.u. *2
- Nebenbei gesagt ist die Idee von web0null die customers_cid gleich der customers_id zu setzen eine kluge Idee. Will man Gästen jedoch keine Kundennummer vergeben (ansonsten müsste man ja auch die /create_guest_account.php anpassen) geht es natürlich nicht.
*1In phpMyAdmin die Tabelle
customers_cid anklicken.
Oben auf "Struktur" klicken.
Unter der Liste der Spalten auf "Index" Klicken.
Den FULLTEXT-Index bei
customers_cid löschen.
Oben in der Liste der Spalten bei
customers_cid rechts in der Reihe auf "Index" klicken.
Bestätigen.
Fertig.
*2Imho ist die Zeile
if ($cid['maxnr'] >= $start_cid) {
$start_cid = $cid['maxnr']+1;
}
völlig überflüssig, da diese Abfrage ohnehin immer zutrifft.
Der Code könnte/sollte also einfach so aussehen:
$start_cid = 1; //oder womit immer man starten möchte
$cid_query = xtc_db_query("SELECT MAX(customers_cid) AS maxnr FROM ".TABLE_CUSTOMERS);
$cid = xtc_db_fetch_array($cid_query);
$start_cid = $cid['maxnr']+1;
$sql_data_array['customers_cid'] = $start_cid;
Da die Implementation schon eine Weile läuft ist der Startwert, also
$start_cid = 1;, nur noch marginal.
Gruß,
noRiddle