database achter pages
Ik zie dat veel mensen alle pagina's die ze hebben in een database opslaan.
nou was ik dit ook van plan, maar ik heb nog geen goede database structuur.
in mijn adres krijg ik een id mee en de titel. Moet daar nog iets bij?
Met Vriendelijke Groeten,
Victor
Wat wil je hier allemaal in gaan zetten dan?
Mensen zetten alles in een db om het dan prettig uit te lezen, maar ik wil weten wat je er dan in moet zetten.
MVG,
Als je alle inhoud van je pagina's in de database stop, creëer je een CMS. Of je zou dat althans moeten doen.
Het gaat dus verder dan alleen even doodleuk de inhoud in de database te zetten. Je zorgt ervoor dat je de inhoud (v/d pagina) kan bewerken. Of ook, dat je de pagina kan verwijderen, een nieuwe pagina maken, ...
Je creëert dus een dynamisch systeem. Neem bijvoorbeeld phpHulp, denk je dat alle nieuwsredacteurs toegang krijgen tot de FTP om zo nieuws toe te voegen? Of denk je dat ze allemaal HTML, CSS kunnen? (en e.v.t. PHP en JS?) Daarom is het dus ook handig die mensen een login te geven en alles dynamisch te maken.
Verder ben je met een ID en/of een titel meer dan genoeg.
Dat is onzin, door pagina's in een database te plaatsen in plaats van op het filesysteem creeer nog meteen een CMS hoor.
@Viktor: Ja het is handig om nog wat attributen toe te voegen, je zou paginanaam op kunnen nemen en verder kan je naar keuze verder uit splitsen maar waarom doe je dit, was is de reden dat je volledige pagina's in een db wilt zetten?
Ik denk dat ik alle content gewoon in de db zet, met een id, naam, url-naam en inhoud dan.
maar jullie hebben me wel geholpen, want ik dacht dat je dan bijv. alle namen en id's wel in de db zet, en dan de inhoud nog wel in een text-bestandje.
@John D: ik wil alleen de inhoud in een db zetten, niet alle html enz.
MVG,
Ik schrijf nergens iets over zuiver en alleen de inhoud in de database te stoppen. Dat heeft naar mijn mening geen enkel nut. Het is pas nuttig als je het met die data wat gaat doen. Die via een adminsysteem aanpassen bijvoorbeeld. En dan spreek je dus wel over een CMS.
Content Management, simpel toch?
@Write Down Een content-beheersysteem is een softwaretoepassing die het mogelijk maakt dat mensen eenvoudig, zonder veel technische kennis gegevens op internet kunnen publiceren (contentmanagement). Als afkorting wordt ook wel CMS gebruikt.
Voldoet dit aan een cms ? Ik neem aan dat hij alles in de database zet dus ook html
html in de database? Ik neem aan niet de gehele hmtl (dan bedoel ik doctype, css bestanden, etc) Gewoon text in de database 'gooien' + wat divjes die je dan kan opmaken. (geen inline css)
zoals ik al eerder zei, ga ik dan echt alleen de 'content' erin zetten, opmaak, doctype heb ik allemaal gwn in een bestand. HTML in een database lijkt me lastig. vooral uit oogpunt om het later te kunnen veranderen, dan is het offline-bestand veel handiger.
Wat is het volgens jou dan wel? Volgens mij is de basis van een CMS content in een database stoppen, het bewerken en het evt. verwijderen. Dat is een CMS in zijn meest eenvoudige vorm. Sowieso moet er altijd een deel HTML in de database, alles wat niet statisch is.
een (bijna altijd afgeschermde) administratiemodule, waar gegevens kunnen worden ingevoerd, verwijderd of aangepast.
een database of een andere vorm van opslag van de gegevens.
een presentatiemodule, waar de ingevoerde gegevens door bezoekers kunnen worden bekeken.
Daarnaast kunnen er andere onderdelen zijn:
een zoekmodule
een inlogmodule voor bezoekers, als het niet gewenst is dat anonieme bezoekers toegang hebben tot de inhoud
een beheersmodule voor de gegevens van geautoriseerde bezoekers (en beheerders)
een beheersmodule voor de presentatiesjablonen
een module om persoonlijke informatie aan de bezoeker te tonen (personalisaties)
een module om centraal artikelen aan te kunnen maken die op verschillende pagina's getoond kunnen worden
Jordi, wat is het verschil tussen wat jij zegt en wat ik zeg? Ik heb niet vermeld dat hij die pagina dan ook uit de database moet gaan halen. Maar dat lijkt me logisch, en dat geeft de TS zelf ook toch aan. Hij vraagt of een id en/of een titel voldoende is. Sorry, maar je bent bezig met muggenzifterij.
een tabel categorieën en een tabel pagina's met id, naam, sef-url, content, datum gepubliceerd, datum laatst aangepast en de categorie waar het in staat.
Nu weer een ander probleem, als ik in de titel geen id heb, gaat hij automatisch naar mijn 404 pagina. maar ik wil het zo doen, dat als hij wel een categorie naam heeft, naar alle items in die categorie gaat. hoe moet ik dit voor elkaar krijgen in php?
www.mijnurl.nl/categorie/id/naam
MVG,
Vaak wordt er met een 'id' gewerkt en op basis daarvan wordt er met een query de benodigde gegevens uit een database gehaald. Zonder allerlei andere variabelen in de url. (die worden opgehaald uit de database o.b.v. id in de url).
Mvg,
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
/*
* Multiviews maakt het mogelijk alle bestanden zonder hun extensie aan te roepen
* Denk bijvoorbeeld http://mijnsite.ext/index.php zou je kunnen aanroepen via
* http://mijnsite.ext/index
* Je kan dus op een zeer eenvoudige manier mooie URL's verkrijgen
*/
$aUri = explode('/' , $_SERVER['REQUEST_URI']);
/*
* http://mijnsite.ext/categorie/id/naam
* Output gaat iets zijn in de aard van:
* array([0] => '', [1] => 'categorie', [2] => 'id', [3] => 'naam');
* Doe even print_r($aUri), dan weet je het direct
*/
/* Select query met alle bestaande categorieën -> stop in een array */
if(!in_array($aUri[1], $aCats) {
/* Categorie niet gevonden --> doe iets
}
/* De overige code kan je wel zelf verzinnen */
?>
/*
* Multiviews maakt het mogelijk alle bestanden zonder hun extensie aan te roepen
* Denk bijvoorbeeld http://mijnsite.ext/index.php zou je kunnen aanroepen via
* http://mijnsite.ext/index
* Je kan dus op een zeer eenvoudige manier mooie URL's verkrijgen
*/
$aUri = explode('/' , $_SERVER['REQUEST_URI']);
/*
* http://mijnsite.ext/categorie/id/naam
* Output gaat iets zijn in de aard van:
* array([0] => '', [1] => 'categorie', [2] => 'id', [3] => 'naam');
* Doe even print_r($aUri), dan weet je het direct
*/
/* Select query met alle bestaande categorieën -> stop in een array */
if(!in_array($aUri[1], $aCats) {
/* Categorie niet gevonden --> doe iets
}
/* De overige code kan je wel zelf verzinnen */
?>
MVG,