Hoi Allemaal,

Ik snap het niet meer mischien kunnen jullie mij helpen. Ik ben een NOOB in PHP.
Ik probeer een extra tabel aan te maken maar dan krijg ik deze fout mijn msql code ziet er als volgt uit

CREATE TABLE `products` (
  `ID` int(30) NOT NULL auto_increment,
  `nummer` varchar(30) NOT NULL default '',
  `omschrijving` varchar(60) NOT NULL default '',
  `aantal` varchar(30) NOT NULL default '',
  `lbh` varchar(30) NOT NULL default '',
  `foto` varchar(255) NOT NULL default '',
  `gelegenheid` varchar(30) NOT NULL default '',
  `beschikbaar` varchar(30) NOT NULL default '',
  `zichtbaar` varchar(30) NOT NULL default '',
  `halloween` varchar(10) NOT NULL default '',
  `kerst` varchar(10) NOT NULL default '',
  `sylvestre` varchar(10) NOT NULL default '',
  `chinees` varchar(10) NOT NULL default '',
  `valentijn` varchar(10) NOT NULL default '',
  `omadag` varchar(10) NOT NULL default '',
  `pasen` varchar(10) NOT NULL default '',
  `moederdag` varchar(10) NOT NULL default '',
  `special` varchar(10) NOT NULL default '',
  `mini` varchar(255) NOT NULL default '<img border="0" src="products/204.jpg" width="150" height="200">',
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=436 DEFAULT CHARSET=latin1;


de fout code = Column count doesn't match value count at row 1

en extra tabel wat ik aan wil maken is:
`test` varchar(30) NOT NULL default '',

wat doe ik verkeerd ?
Een aantal dingen die mij meteen opvallen:

- MyISAM
- Waarom begint je autoicrement bij 436
- Waarom kan jou ID 30 karakters bevatten(beetje veel lijkt me)
- Backticks
Hoi Jurgen,

Zoals ik al vertelde ik ben een noob.
wat zijn de volgende dingen ?

- MyISAM
- Waarom begint je autoicrement bij 436
- Waarom kan jou ID 30 karakters bevatten(beetje veel lijkt me)
- Backticks

wat betekend het ?
Tip: Ga normaliseren, jouw huidige datamodel is niet goed. Je gaat niet voor iedere feestdag een aparte kolom aanmaken, feestdagen zet je in een aparte tabel. Een koppeltabel tussen de producten en feestdagen legt dan de koppelingen tussen de producten een feestdagen. Vele malen flexibeler!

MyISAM is natuurlijk bagger, daar kun je geen relationele database mee maken, dat is technisch onmogelijk: Je kunt geen foreign keys aanmaken.

Edit: Normaliseren. Dat zal veel vragen beantwoorden en zorgen voor een beter datamodel.

MyISAM: collectie bugs en andere ellende, hoewel de handleiding vrijwel alle ellende keurig beschrijft. Het verknallen van data is functionaliteit in een standaard geconfigureerde database. Er zijn betere databases, maar ik noem even geen namen, dat ligt wat gevoelig... ;)

Backticks zijn deze gore dingetjes: ` die mogen nooit voorkomen in een fraai stuk SQL, ze zorgen vroeg of laat voor bugs.

INT(30), niks om je druk over te maken, dat is hetzelfde als een INT.
Jongens wat is MyISAM
Je moet even terug gaan naar database design. Ik weet niet precies wat je wil gaan maken maar even een opsomming:

MyISAM

Deze storage engine moet je niet gebruiken, deze maakt het onmogelijk om een relationele database op te zetten dus niet erg praktisch.

Autoincrement

Waarom zou je de autoincrement laten beginnen bij 436? Is dit mooier? Dit maakt helemaal niets uit voor de database 1 of 20342341243098234097 zijn gelijk voor de database.

ID 30 karakters

Waarom zou je hem 30 karakters maken denk jij zoveel records op te slaan? (dit is dus een getal met 29 0-en erachter niet nodig dus. voor een groot project zou je je id veld wel 5/10 karakters kunnen maken maar is in veel gevallen niet nodig.
MyISAM is storage engine. Eentje waarmee je geen relationele databases kunt maken dus je kunt beter InnoDB gebruiken.
Henk schreef op 03.03.2008 17:08
MyISAM is storage engine. Eentje waarmee je geen relationele databases kunt maken dus je kunt beter InnoDB gebruiken.
Ook die zul je moeten configureren, ook die verknalt standaard de data wanneer je per ongeluk ergens een foutje maakt...

Er zijn betere databases!
Ja frank dat weten we nu wel..
daar zijn we nu ff niet mee bezig =)
Vincent schreef op 03.03.2008 17:11
Ja frank dat weten we nu wel..
daar zijn we nu ff niet mee bezig =)
Sorry, ik liet me even gaan, ik werd uitgedaagd...

Ik zal even een trapje halen om de desbetreffende persoon weer van de kast af te helpen, ik ben bang daar ik hem daar op heb gejaagd. Momentje!
@Vincent: inderdaad, helemaal mee eens. Frank, je begint nogal irritant te worden met je constante gezeur over PostgreSQL...

Wordt er overigens op diezelfde pagina nog een query uitgevoerd? Deze fout lijkt mij niet logisch bij deze query. Ik maak databases ook altijd aan via PHPMyAdmin, anders moet je deze query eens uitvoeren ín PHPMyAdmin.

Reageren