Unieke Nummers check

Status
Niet open voor verdere reacties.

BoukeWeening

Gebruiker
Lid geworden
3 apr 2007
Berichten
232
Hallo,

Ik heb de volgende vraag:

Stel ik laat 40.000 flyers drukken met allemaal een uniek nummer (dus van 00001 - 40000). Nu zitten er aan deze nummer prijzen verbonden, 10 stuks. Nu wil ik op een website een stukje hebben waar je je nummer in kan voeren en als je dan bij de unieke nummers zit dan heb je prijs en laat hij dat direct zien.

Nu is de kans dat iedereen hun nummer invult natuurlijk klein. daarom wil ik graag aan de 1e prijs ongeveer 20 unieke nummers koppelen. Wie het eerst zijn nummer invult (van die 20) wint, de rest van de nummers vallen weg. Tevens moet er per computer maar 1 nummer ingevoerd kunnen worden...

Hoe maak ik zoiets? Ik ben redelijk vaardig met HTML, CSS, PHP maar niet echt met programmeren...

Ik hoop dat iemand mij kan helpen...

Alvast bedankt!

Groet,


(ps. het zou mooi zijn als ik zelf alles weer kan resetten)
 
Je zou de rand()-functie kunnen gebruiken om 20 cijfers te trekken tussen de 0 en 40000
 
Die 20 cijfers worden getrokken door een Notaris en staan dan dus vast, die moet ik dus zelf invoeren...
 
Die check zou je heel simpel in kunnen voeren.

Je controleert gewoon met een SELECT-query of er al een winnaar is, zo niet dan laat je een formulier zien en anders een melding dat er al en winnaar is.
 
Oke, maar dat is nog maar een hele kleine optie...

Zou je/jullie mij een heel eind op weg kunnen helpen?

Alvast bedankt!
 
Alle mensen zien het formulier want iedereen moet zijn nummer in kunnen voeren. Nu hebben we 20 prijzen... maar omdat je er niet vanuit kunt gaan dat iedereen zijn nummer invoert hebben we per prijs 20 nummers getrokken. Heb je dus een van deze 20x20=400 nummers dan heb je een prijs gewonnen, de overige 19 nummers die aan deze prijs vast zaten komen dus te vervallen...
 
Eigenlijk zou dit er zo'n beetje in moeten:

inloggen Admin
invoeren winnende nummers
overzicht ingevoerde loten door bezoekers
invoeren naam + postcode + huisnr + email + code
bevestiging per email en op het scherm of er is gewonnen

en dan met alle dingen die ik eerder al genoemd heb...
 
En jij denkt dat wij je dat zomaar even gaan geven?:shocked:

Hetgeen jij allemaal wilt is niet 1-2-3 te maken.

Zo te lezen heb je minimaal 3 tabellen nodig.

gebruikers
Code:
gid INT(11) auto_increment Primary Key
gebruikersnaam VARCHAR(50)
wachtwoord VARCHAR(32)
loten
Code:
lid INT(11) auto_increment Primary Key
getal INT(5)
prijs INT(2)
winnaars
Code:
wid INT(11) auto_increment Primary Key
lid INT(11)
naam VARCHAR(75)
postcode VARCHAR(7)
huisnummer VARCHAR(4)
email VARCHAR(50)
Wat je dan doet is wanneer de ingevoerde code overeenkomt met een getal uit de tabel loten dan stel je de lid van de winnaar in op de lid uit de tabel loten.

Vervolgens kun je kijken of er prijs is door de tabel loten te raadplegen voor de prijs welke op het ingevoerde getal is gevallen. Daarna join je winnaars met loten en controleer je dus of daar de prijs gelijk is aan de prijs op het ingevoerde getal.

PHP:
$lotQuery = "SELECT lid, prijs FROM loten WHERE getal ='". $_POST['getal'] ."'";
$lotResult = mysql_query($lotQuery) or die(mysql_error());
if(mysql_num_rows($lotResult) > 0) {
  $lotRow = mysql_fetch_array($lotResult);
  $lid = $lotRow['lid'];
  $prijs = $lotRow['prijs'];
  $winnaarQuery = "SELECT prijs FROM winnaars w INNER JOIN loten l ON w.lid=l.lid";
  $winnaarResult = mysql_query($winnaarQuery) or die(mysql_error());
  $winnaarRow = mysql_fetch_array($winnaarResult);
  if($winnaarRow['prijs'] != $prijs) {
    $insertQuery = "INSERT INTO winnaars
                 lid='". $lid ."',
                 naam='". $_POST['naam'] ."'," //etc
    mysql_query($insertQuery) or die(mysql_error());
    // mail versturen
    echo 'Gefeliciteerd, u heeft de '. $prijs .'e prijs gewonnen.';
  } else {
    echo 'Helaas, iemand voor u heeft de '. $prijs .'e prijs al gewonnen.';
  }
} else {
  echo 'Helaas, op uw getal is geen prijs gevallen.';
}
De verdere implemetatie mag je zelf gaan doen. Het is (bijna) een volledige webapplicatie die je van ons vraagt.
 
Bedankt, ik ga dit even proberen...

Ik vraag ook niet om de volledige webapplicatie, ik vraag om een begin en stukjes code... het inlog gedeelte van admin e.d. kan ik zelf wel hoop ik...

Wel zou ik het zeer op prijs stellen dat je kunt uitleggen hoe je eerder genoemde code kunt invoegen en koppelen aan een formulier...

greetz

Ps. het hoeft ook niet allemaal helemaal in layout te komen... sommige gegeven kan ik er ook met PHPmyadmin wel uit halen...
 
Laatst bewerkt:
Code welke ik gaf wordt verwerkt tijdens het submitten van het formulier.

PHP:
if(isset($_POST['submit'])) {
  // hier bovenstaande code
} else {
  // formulier
}
 
Oke, en dan moet ik een formulier maken met welke invoervelden? en welke namen? Ik ben een beetje een beginner in het gebruik van formulieren in combi met PHP en MYsql
 
Oke, en dan moet ik een formulier maken met welke invoervelden? en welke namen?

Wat wil je nou allemaal onthouden?

Naam
Postcode
Huisnummer
E-mailadres
Getal

Toch? Als je gewoon die namen aanhoudt dan heb je ook geen problemen. Anders moet je even in mijn code de $_POST-variabelen aanpassen naar de juiste naam.
 
Wat wil je nou allemaal onthouden?

Naam
Postcode
Huisnummer
E-mailadres
Getal

Toch? Als je gewoon die namen aanhoudt dan heb je ook geen problemen. Anders moet je even in mijn code de $_POST-variabelen aanpassen naar de juiste naam.

Ja, oke, maar hoe verwerk ik dat in een formulier? kun je me helpen aan een opstart? :o
 
Je weet toch wel hoe je een HTML formulier moet maken?

Het zijn allemaal <input type="text" />-elementen en op het einde een
<input type="submit" name="submit" value="Verstuur" />
HTML:
<form action="" method="post">
Naam: <input type="text" name="naam" /><br />
Postcode: <input type="text" name="postcode" maxlength="7" /><br />
Huisnummer: <input type="text" name="huisnummer" maxlength="4" /><br />
E-mail: <input type="text" name="email" /><br />
Code: <input type="text" name="getal" /><br /><br />
<input type="submit" name="submit" value="Verstuur" />
</form>
 
Ik meende toch dat duidelijk in mijn vorige bericht met commentaar te hebben aangegeven :(

PHP:
<?php
if(isset($_POST['submit'])) {
  // Bij voorkeur allerlei controles uitvoeren op ingevulde waardes
  
  // Kijken of er een prijs op het getal is gevallen
  $lotQuery = "SELECT lid, prijs FROM loten WHERE getal ='". $_POST['getal'] ."'";
  $lotResult = mysql_query($lotQuery) or die(mysql_error());
  if(mysql_num_rows($lotResult) > 0) {
    // Er is een prijs -> kijken of die prijs niet al is vergeven
    $lotRow = mysql_fetch_array($lotResult);
    $lid = $lotRow['lid'];
    $prijs = $lotRow['prijs'];
    $winnaarQuery = "SELECT prijs FROM winnaars w INNER JOIN loten l ON w.lid=l.lid";
    $winnaarResult = mysql_query($winnaarQuery) or die(mysql_error());
    $winnaarRow = mysql_fetch_array($winnaarResult);
    if($winnaarRow['prijs'] != $prijs) {
      $insertQuery = "INSERT INTO winnaars
                 lid='". $lid ."',
                 naam='". $_POST['naam'] ."'," //etc
      mysql_query($insertQuery) or die(mysql_error());
      // mail versturen
      echo 'Gefeliciteerd, u heeft de '. $prijs .'e prijs gewonnen.';
    } else {
      echo 'Helaas, iemand voor u heeft de '. $prijs .'e prijs al gewonnen.';
    }
  } else {
    echo 'Helaas, op uw getal is geen prijs gevallen.';
  }
} else {
?>
<form action="" method="post">
Naam: <input type="text" name="naam" /><br />
Postcode: <input type="text" name="postcode" maxlength="7" /><br />
Huisnummer: <input type="text" name="huisnummer" maxlength="4" /><br />
E-mail: <input type="text" name="email" /><br />
Code: <input type="text" name="getal" /><br /><br />
<input type="submit" name="submit" value="Verstuur" />
</form>
<?php
}
?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan