In meiner Auktionsverwaltungssoftware ist eine Funktion die Bieternummerverwaltung. In diesem Fall können Sie Kunden, die Sie zuvor auf der Website registriert haben, permanente Bieternummern (oder Käufernummern) zuweisen.Auswählen der nächsten verfügbaren "Bieternummer"
Mein Problem ist, ich kann nicht herausfinden, wie die minimale verfügbare Bieternummer gefunden und zugewiesen wird, wenn der Benutzer keine feste Nummer hat.
Zum Beispiel .. Ein bestimmtes Ereignis (Auktionsveranstaltung) hat 4 registrierte Bieter.
Bidder #1 => Assigned #21 (has perm num set to #21)
Bidder #2 => Assigned #1 (has no perm num set)
Bidder #3 => Assigned #3 (has perm num set to #3)
Bidder #4 => Assigned #2 (has no perm num set).
Auch muss es eine Zahl überspringen, wenn jemand diese Perm-Nummer hat. So ,
Bidder #5 => Assigned #5 (for example) because #4 is taken by someone with perm num set to #4
Mein Code so weit:
if(!empty($_GET['add_bidder'])){
$cID = $_GET['add_bidder'];
$eID = $_GET['eventID'];
$eDI = $_GET['eDI'];
$sum = 0;
$match = 0;
$sendtext = mysql_query("SELECT c_sms_to_bidders FROM as_companies WHERE c_userID='".mysql_real_escape_string($_GET['s'])."'");
$send = mysql_fetch_array($sendtext);
$getInfo = mysql_query("SELECT * FROM as_users WHERE userID='".$cID."'");
$gotInfo = mysql_fetch_array($getInfo);
$checkPermB = mysql_query("SELECT c_c_PermB FROM as_company_options WHERE c_c_Company='".$_GET['s']."' AND c_c_User='".$gotInfo['user_token']."' LIMIT 1");
$checkedPermB = mysql_num_rows($checkPermB);
if($checkedPermB > 0){
// User has a perm number.
} else {
// User doesn't have a perm number. Let's get all the reserved values..
$checkPermBNumber = mysql_query("SELECT c_c_PermB FROM as_company_options WHERE c_c_Company='".$_GET['s']."'");
$gotPermBNumbers = mysql_num_rows($checkPermBNumber);
if($gotPermBNumbers > 0){
$biddernum = 1;
if($gotPermBNumbers > 0){
while($biddernums = mysql_fetch_assoc($checkPermBNumber)){
if($biddernum == $biddernums['c_c_PermB']){
$biddernum++;
continue;
} else {
break;
}
}
echo "bidder will be given #".$biddernum;
}
}
}
} else {
// invalid approach
}
Bitte beachten Sie die veralteten Funktionen ignorieren, war es leichter, zum Beispiel Zwecke zu geben.
Also zurück zu meiner Frage .. Was mache ich falsch? Hier ist mein Flussdiagramm:
Add Bidder Function Fired =>
Get Info About Given User =>
Check if User Has Perm # =>
=> yes
- get perm bid num, assign, save & wait to add another
=> no
- get next available bidder num (can't be a num that someone has reserved (perm num) and can't be already taken (for given event; bidder numbers are per event), assign next available bidder num, save & wait to add another
Was passiert, wenn eine permanente Zahl nach Zuweisung gültigen Nummern registriert passieren wird (das heißt die Anzahl von einer künftigen Aktion ungültig gemacht)? Der einfachste Weg besteht darin, disjunkte Sätze für permanente und nicht permanente Nummern zu haben, z. mit einem Buchstabenpräfix. –