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 '',
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.
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.
@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.