Hallo allemaal ,
Ik wil een melding systeempje maken voor m,n site , vrij simpel eigenlijk alleen heb ik wel een paar vraagjes , o.a voor de DB Tabel en zowel voor het PHP Script .
Ik heb even snel een DB Tabel aangemaakt
CREATE TABLE `Website`.`Melding` (
`Status` ENUM( 'Aan', 'Uit' ) NOT NULL ,
`Melding` VARCHAR( 500 ) NOT NULL ,
`Datum` DATE NOT NULL
) ENGINE = MYISAM
Ik wil de Status via een Selectbox doen dus als de status op 'aan' komt moet de melding vertoont worden op de pagina's waar het dus bijv opgevraagt word , En als de status op 'uit' staat dan moet hij niks laten zien
Nu was mijn vraag, kan deze tabel beter ? Zoja hoe en op welke manier zou jij het doen ( ik zelf op deze manier.. ).
En de vraag kwa PHP gedeelte is .
Als ik op een pagina dus wil opvragen wat de Melding is .. hoe zou ik dat het beste kunnen doen aangezien ik het wel uit de DB kan ophallen alleen ik zou eigenlijk niet weten hoe ik dat moet doen i.v.m status ... als de status nee is dan moet hij niks laten zien maar zodra de status op Aan staat dan moet de melding wel getoont worden .. Hoe kan ik dit het beste doen ?
je zou ipv aan en uit ook 0 voor uit en 1 voor aan kunnen gebruiken..
Bij het ophalen van de melding alles opvragen waar de melding 1 is(WHERE melding=1)... dan laat ie alle "uit" meldingen niet zien.
laat ziezo de hoofdletters in veld-, tabel- en databasenamen weg en maak daar kleine letters van. Daar kan je alleen maar fouten mee maken.
Het veld Melding kan je het best een TEXT van maken, want wat als je een heel lang bericht wilt plaatsen.
Voor het statusveld kan je meerdere dingen verzinnen:
Als je het veld melding ook null kan laten zijn, kan je het status-veld weglaten. Je hoeft dan alleen te controleren of er wat in het melding veld staat.
Als je de kolommen begin- en einddatum maakt, kan je selecteren of een melding vandaag getoont moet worden. Je kan dan ook alvast een melding voor volgende week erin zetten, of meerdere meldingen tegelijk.
Verder zou ik als Engine innoDB gebruiken, maar dat is meer persoonlijk.
En een varchar kan geen 500 tekens. Gebruik dan een long versie.
Dat is niet zo zwart-wit te stellen, het is afhankelijk van welke versie van MySQL je gebruikt.
Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions. The effective maximum length of a VARCHAR in MySQL 5.0.3 and later is subject to the maximum row size (65,535 bytes, which is shared among all columns) and the character set used.
Als ik dit goed lees, kan een VARCHAR maximaal 65.535 tekens bevatten maar kan 1 tabel voor álle kolommen samen ook maximaal 65.535 tekens bevatten. Wil je veilig kunnen werken, dan gebruik uiteraard geen MySQL maar dat terzijde, dan zul je dit maximum moeten verdelen over de verschillende kolommen en hun constraints. Kortom, het is weer redelijk *beep* in MySQL.
MySQL kent geen echte BOOLEAN, een BOOLEAN is in MySQL een alias voor TINYINT(1). Met ee 1 of 0 kun je daar prima aangeven of iets true of false is.