Verschillende teksten voor éénzelfde variable uit de database.
Ik zit met een klein denkprobleempje, waar ik niet echt uigeraak.
Kijk,
Ik heb verschillende groepen die de inhoud van Div's/Hoofddingen kunnen bewerken.
Maar hoe sla ik dit nu op?
Ik weet wel hoe dit moet in PHP, maar ik weet niet echt mijn databasestructuur.
Zouden jullie het zo doen?
--------------------------------------------------------------
- ID ---- div_naam ---- Groep_1 ---- Groep_2 ---- Groep_3 ----
--------------------------------------------------------------
- 01 ---- div_nr_1 ---- Welkom op groep 1 ---- Welkom op groep 2 ---- Welkom op groep 3 ----
--------------------------------------------------------------
Hierboven was als een voorbeeld, maar dit zijn nu nog kleine teksten.
Is dit een goeie structuur?
Of zouden jullie het anders doen? Het is eigenlijk beetje te vergelijken met je site is verschillende talen.
Alvast zeer bedankt!
Diov
Maar ik snap niet helemaal waarom je niet 1 tabel maakt met:
Id
Titel div 1
Tekst div 2
Etc...
Groep
En dan selecteert ie voor een groep
Maar het kan zijn dat ik het niet helemaal snap
Gewijzigd op 14/07/2013 09:12:43 door Bas IJzelendoorn
Kijk, ik heb nu even deze tabel gemaakt:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
CREATE TABLE `teksten` (
`tekst_id` int(11) NOT NULL AUTO_INCREMENT,
`tekst_naam` varchar(150) COLLATE latin1_general_ci NOT NULL,
`tekst_inhoud` longtext COLLATE latin1_general_ci NOT NULL,
`tekst_web` tinyint(2) NOT NULL,
PRIMARY KEY (`tekst_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;
`tekst_id` int(11) NOT NULL AUTO_INCREMENT,
`tekst_naam` varchar(150) COLLATE latin1_general_ci NOT NULL,
`tekst_inhoud` longtext COLLATE latin1_general_ci NOT NULL,
`tekst_web` tinyint(2) NOT NULL,
PRIMARY KEY (`tekst_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;
Maar dan vraag ik me af hoe ik makkelijk de juiste tekst ophaal..
Ik zou een groep_id erbij bouwen.
Dan kan je toch met een JOIN maken op de tabellen groepen en teksten.
Althans als je die tabel hebt.
Gewijzigd op 14/07/2013 11:12:16 door Bart V B
Kan je het wat nader verklaren aub? :)
Je zit ermee dat je niet weet hoe je je teksten bij de juiste groep weergeeft toch?
Ik zeg het tabel met teksten heb je.
Als je per groep je teksten wil weergeven dan zou je nog een tabel moeten maken met "groepen"
Bij de teksten zet je groep_id en dan kan je het tabel groepen en teksten aan elkaar knopen.
Dat doe je met een JOIN. Kijk eens hier: http://www.phptuts.nl/view/41/14/
In jouw voorbeeld is group_id, mijn web_id.
Maar, ik zou dit allemaal in 1 query willen doen, want ik begrijp nu niet hoe je alle teksten per groep ophaalt, en dan nog de juiste tekst in de juiste div plaatst.
Dus,
Ik heb verschillende teksten, kan deze oproepen per groep, maar deze tekst moet nu ook nog op de juiste plaats worden geplaatst.
Ik kan wel telkens een query doen, maar ik vraag me af of dit ook in 1 query kan? EN hoe doen jullie dit?
FROM tekst AS t
LEFT JOIN groepen AS g
ON t.web_id = g.id
ORDER BY groep_id ASC, t.tekst_id ASC
Je gebruikt dan tekst_web (int 2) als ID.
Die gebruik je als koppeling aan de tabel groepen waarin je een minimaal een kolom id hebt.
In je PHP kijk je dan steeds welke groep je momenteel zit. Als die niet hetzelfde is als de vorige keer (die sla je dus even tijdelijk op in een $tmp bijvoorbeeld), dan heb je een nieuwe groep.
Als je dit in code wilt zien, roep het even. Ik gebruik zoiets zelf ook op de homepage van www.zunflappie.nl voor de diverse categorieën.