login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Create tabel

Offline stenno - 19/10/2005 10:40
Avatar van stennoPHP interesse
Beste sitemasters,

Ik heb gisteren met pijn en moeite en met veel hulp van sommige van jullie een registratieformulier gemaakt + een script dat na het drukken op de sign up button, eerst checkt of alles wel is ingevuld vervolgens als alles is ingevuld word de formaction uitgevoerd. Hiermee wil ik gegevens uit het formulier opslaan in mijn database.

Hiervoor heb ik de volgende tabel in mijn database aangevraagt. Ik zou alleen graag weten of jullie vebeteringen hebben of dingen die jullie misschien anders gedaan zouden hebben.

dit is mijn table.

  1. CREATE TABLE `Users` (
  2. `Id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT ,
  3. `Username` VARCHAR( 25 ) NOT NULL ,
  4. `Email` VARCHAR( 25 ) NOT NULL ,
  5. `Koclink` VARCHAR( 54 ) NOT NULL ,
  6. `Armysize` MEDIUMINT UNSIGNED DEFAULT '1' NOT NULL ,
  7. `Race` ENUM( 'humans', 'orcs', 'elves', 'dwarves' ) NOT NULL ,
  8. `Alliance` ENUM( '1', '2' ) NOT NULL ,
  9. `Password` VARCHAR( 6 ) NOT NULL ,
  10. PRIMARY KEY ( `Id` )
  11. ) TYPE = MYISAM ;


Er moet opgeslagen worden:

1. automatisch een Id dat vanaf 1 oploopt. dus rij 1 id 1 rij 2 id 2 etc.
2. een username van maximaal 25 karakters waar geen onderscheid gemaakt word tussen hoofd of kleine letters en waar ook tekens in voor kunnen komen zoals: - _ enz.
3. een emailadres.
4. een link van een site van zowieso altijd 54 karakters lang.
5. een armysize die op z'n kleinste 1 is en niet groter word dan 10 miljoen.
6. een ras: wat de waarde kan hebben: 'humans','orcs','elves','dwarfves'
7. een alliance die altijd de waarde 1 of 2 heeft.
8. een password van altijd 6 karakters lang maar ik weet niet hoe dat gaat werken als ik het ga hashen met md5 ??

ps niets is null omdat ik voor het formulier te verzenden check of alles is ingevuld  

Graag advies over wat beter kan en hoe ik dat zou moeten doen met mijn password.

8 antwoorden

Gesponsorde links
Offline Martijn1989 - 19/10/2005 11:00
Avatar van Martijn1989 PHP ver gevorderde Uhm, volgens mij wil je met een spel beginnen, maar als je net gister met moeite een formulier heb kunnen maken, zou ik eerst wat andere klusjes doen.. Nja,... als je dan egt mij databasestructuur zou willen weten, zou ik dit maken :



  1. CREATE TABLE `users` (
  2. `id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
  3. `username` VARCHAR( 50 ) NOT NULL ,
  4. `email` VARCHAR( 50 ) NOT NULL ,
  5. `koclink` VARCHAR( 50 ) NOT NULL ,
  6. `armysize` INT( 16 ) DEFAULT '1' NOT NULL ,
  7. `race` ENUM( 'humans', 'orcs', 'elves', 'dwarves' ) NOT NULL ,
  8. `alliance` ENUM( '1', '2' ) NOT NULL ,
  9. `password` VARCHAR( 15 ) NOT NULL ,
  10. PRIMARY KEY ( `id` )
  11. ) TYPE = MYISAM ;


waardes zijn soms een beetje aangepast, omdat dit gewoon makkelijker is.
Offline Thomas - 19/10/2005 11:04
Avatar van Thomas Moderator Een unsigned tinyint biedt maar plaats voor de getallen 0-255. Wellicht wil je dit uitbreiden naar een groter getal (zoals Martijn hierboven aangeeft).

Je alliance is in principe af te leiden aan de hand van je race, dus deze gegevens zijn min of meer dubbel, maar ik kan mij voorstellen dat het handig kan zijn om de alliance expliciet op te slaan (bijvoorbeeld voor als er een ras bijkomt ofzo - je alliance is dan al eenduidig vastgelegd).

Een MD5-hash is altijd 32 karakters lang, dus als je de (volledige) hash wilt opslaan zou ik dit veld uitbreiden naar 32 karakters.
Offline stenno - 19/10/2005 11:32 (laatste wijziging 19/10/2005 11:44)
Avatar van stenno PHP interesse Ok bedankt voor de info,

@ martijn1515:

Ik wil geen spel maken, maar een clansite voor een onlinespel, en zoals ik al zei is de koclink altijd 54 karakters lang dus snap ik niet dat je `koclink` VARCHAR ( 50 ) NOT NULL, hebt ingevuld, ik neem aan dat dit een foutje is.

toch ??
maar nog maals bedankt wat jullie zeggen over id en password klinkt wel logisch ja.

ps. begint id nou niet met het laagste waardenbereik van int(eger) dan ??
Offline gijs - 19/10/2005 11:46 (laatste wijziging 19/10/2005 12:01)
Avatar van gijs HTML beginner
Citaat:
ps. begint id nou niet met het laagste waardenbereik van int(eger) dan ??

Nee, hij begint gewoon vanaf 1.

Het laagste waardenbereik van een integer zit volgens mij ergens ver in de min.
Offline Thomas - 19/10/2005 12:45
Avatar van Thomas Moderator Het "laagste waardenbereik" (de laagst mogelijke waarde) van een UNSIGNED getal is altijd 0 .
Offline stenno - 19/10/2005 12:52
Avatar van stenno PHP interesse
Ja maar omdat er geen unsigned bij staat 

`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
Offline Thomas - 19/10/2005 13:42
Avatar van Thomas Moderator auto_increment werkt niet met negatieve waarden.
auto_increment begint altijd te nummeren vanaf 1 (als je een nieuwe tabel aanmaakt).
Offline stenno - 19/10/2005 14:58
Avatar van stenno PHP interesse ok bedankt opgelost !
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.186s