Hoi,

Ik wil graag een systeem maken waarbij het script
voor mij telkens rondom nummers maakt. Getallen van 2 tot 4 cijfers lang. Bijvoorbeeld 32, 6728, 7334. Het getal dat gemaakt is moet bijvoorbeeld worden opgeslagen in een .txt bestand, zodat het zelfde getal niet nog eens gebruikt kan worden.

Kan iemand mij helpen ??
<?php
$getal = mt_rand (10, 9999);
?>
Dank u, Het werkt :)
Maar is het nu ook niet meer mogelijk dat hetzelfde getal 2 keer wordt gemaakt ?
Dit is wel mogelijk. Je ziult het getal ergens moeten opslaan en dan kijken of hij al eerder is weggegeven.
Waarvoor wil je zoiets gebruiken?
Ik ben bezig met een winkelsysteempje, en aangezien ik nog maar net begin met php-en :P. Ik wil die nummer generatie gebruiken voor orders die besteld worden.. zodat elke bestelling een unieke ordernr krijgt. Ik kan helaas niet overweg met een DB, ook aangezien er maar een klein aantal producten op komen te staan!
<?php
for ($i=1; $i<= 5; $i++) //het tweede getal wijzigen voor aantal cijfers
{
$nieuw_getal = mt_rand(10, 9999);
$getal = $getal.''.$nieuw_getal;
}
?>

zo wordt het 5 keer uitgevoerd.

ik weet trouwens niet of die .''. weggelaten kan worden, maar dat zou je even kunnen proberen.

ik wil je erop attenderen dat je factuurnummers beter opeenvolgend kunnen zijn, ik geloof dat het zelfs een verplichting is van de BD.
kun je heel gemakkelijk regelen door je facturen tabel op auto_increment te zetten, en dan je id bij een getal van 5 of 6 cijfers te laten beginnen.
Waarom niet gewoon de nummers op volgorde uitgeven? Dan hoef je alleen maar te kijken wat het laatste ordernummer was, en dat met 1 te verhogen. Is een stuk gemakkelijker te implementeren en kost minder resources.

Het geeft je ook een voordeel bij het factureren. De belastingdienst schrijft voor dat je facturen "doorlopend en opeenvolgend" moeten worden genummerd. Het scheelt je dan een hoop administratie als je ordernummer en factuurnummer hetzelfde zijn.
Tussen het ophalen en wegschrijven van het nieuwe nummer zit dan een kleine ruimte... wat als...
mysql_insert_id()

EDIT: je kunt er als je zeker wilt zijn ook een aparte query voor maken.
Het gaat hier over een situatie zonder database, zoals gewenst.
@Arjan: Als je dat wilt voorkomen, moet je eigenlijk een locking-mechanisme maken en het ophogen van je ordernummer in een kritieke sectie uitvoeren.

Oftewel: het is een stuk gemakkelijker om het toch maar in MySQL te doen ;-)

Reageren