Door
Paul Weiss
op 31-08-2023 15:26
gewijzigd op 31-08-2023 15:31
4.420 views
Stel ik heb in mijn database 2 veldnamen en wel content1 en content2. Content1 bavat alle namen van variabelen die doormiddel van een php script zijn aangemaakt. De namen van deze variabelen worden ook in een php document gebruikt om de inhoud daarvan weer te geven (zie verder onderaan). De inhoud van content1 zijn elk uniek en worden door een php script dus gegenereerd. veldnaam "content2". bevat de inhoud die aan deze variable is/wordt toegekend.
Hieronder een voorbeeld hoe het eruit zou kunnen zien:
Content1 bevat bijvoorbeeld de volgende variablenamen:
rij1titel1
rij1titel2
rij90tekst1
rij90tekst2
De repec. waardes in content2 bevatten bijvoorbeeld
hallo iedereen
Welkom iedereen
Dit huis is blauw
Deze tandenborstel is rood
dus rij1titel1 = hallo iedereen
etc..
zie de onderstaande code die ik momenteel heb. Hierdoor wordt alles uit de database dus ingelezen. Maar hoe kan ik nu ervoor zorgen dat de variabelen namen uit de database worden toegewezen en vervolgens kunnen worden weergegeven? beetje verwarrend wellicht wat ik bedoel. Hoop dat het een beetje duidelijk is wat ik wil. Weet ook niet of dit uberhaupt mogelijk is!!
Wat er vervolgens zou moeten eigenlijk is dat onderstaande als het ware automatisch zou moeten worden aangemaakt. Dit kan ik dus niet handmatig aanmaken, omdat ik niet weer welke variablenamen in de database voorkomen!!
Ik weet niet of ik begrepen heb wat je wilt maar ik gok er op dat de naam van een variabele in 1 kolom staat de inhoud daarvan in een andere.
Misschien zoek je dan dit: $rij1titel1 = $row[$rij1titel1];
Nee dat is niet wat ik bedoel. ik weet de variable namen niet als ik het script schrijf. er zal een loop moeten worden uitgevoerd waarbij dus steeds een variablenaam zoals $rij1titel1 wordt aangemaakt en vervolgens wordt de waarde uit content2 daaraan toegekend. Maar gezien de berichten is dit niet de weg die ik moet bewandelen.
Ik zal nog een nieuwe reactie waarop ik zal aangeven hoe ik het anders zou kunnen doen.
[size=xsmall]Toevoeging op 31/08/2023 19:25:46:[/size]
Hier nog even wat meer info waarom. Ik ben een eigen site builder aan het bouwen (niet te verwarren met een cms). Hierbij wordt de inhoud van een form steeds helemaal opgeslagen in een apart bestand, dus zonder tussenkomst van een database. Dat werkt zeer goed.
echter ik ben op zoek naar een manier waarbij de opmaak van de code niet via inspector gewijzigd kan worden, want dan klopt de styling niet meer uiteraard. Uiteraard is dat ook weer simpel door mij te verhelpen. Maar ik zoek eigenlijk naar een andere manier die dat voorkomt.
Op dit moment kan ik dus verschillende html blokken steeds toevoegen / verwijderen of met elkaar laten wisselen. elk html blok dat wordt toegevoegd krijgt een uniek rijnummer toegekend. het eerste html blok wordt dan opgeslagen als rij1. het 2e blok dat wordt toegevoegd krijgt rij2 etc. etc.. De html code zelf kan dan niet door de gebruiker worden gewijzigd. deze is verder statisch. alleen de gegevens zoals tekst opmaak etc.. moeten apart worden opgeslagen in een database. Ik zou dus elk blok kunnen voorzien van 1 of meerdere php variables (aantal en welke is afhankelijk van het html blok) die vervolgens worden uitgelezen en de nieuwe gewijzigde inhoud ook weer kan worden opgeslagen in de database.
De database zou er dan bijvoorbeeld zo uit komen te zien
rijnummmer titel1 titel2 tekst1 tekst2 kleur1 button
1 hallo. welkom pietje. huis. #fffff. dit is een button
2 hihi hallo jij jantje mes. #00000. dit is ook een button
Per html blok kan ik dus dingen wijzigen die verwijzen naar het desbetreffende rijnummer. een blok zou er zo uit kunnen zien.
<!-- div id="1" doelt naar rijnummer 1 uit database -->
<div id="1">.
<h1 contenteditable="plaintext-only"><?php echo $titel1; ?></h1>
</div>
<!-- div id="5" doelt naar rijnummer 5 uit database -->
<div id="5">.
<h1 contenteditable="plaintext-only"><?php echo $titel1; ?></h1>
</div>
<!-- div id="7" doelt naar rijnummer 7 uit database -->
<div id="7">.
<p contenteditable="plaintext-only"><?php echo $tekst1; ?></p>
</div>
echter bij deze methode heb ik meerdere variables met de naam $titel1. Bovendien moet ik bij deze methode elk blok apart opslaan in de desbetreffende rij van de database. Ik zoek echter naar een manier waarbij ik alles in 1 keer kan opslaan. vandaar dat ik dit topic ben gestart waarbij er gebruik gemaakt wordt van allemaal verschillende variables. Maar wellicht dat de methode die ik nu beschrijf in principe wel goed is, maar dat er een andere manier is om allesin 1 keer op te slaan.
[size=xsmall]Toevoeging op 31/08/2023 19:29:59:[/size]
hoi arien. Begrijp niet helemaal wat je bedoeld. als ik meerdere titels kan hebben voor een html blok dan kan ik niet titel1 en titel2 gebruiken? Kan natuurlijk ook titel_a en titel_b gaan gebruiken uiteraard. vertikaal komen alleen de waardes te staan. een variable is verder toch geen waarde. of ik begrijp je verkeerd. Kun je een voorbeeld geven wat je precies bedoeld? bedankt.
[size=xsmall]Toevoeging op 31/08/2023 19:42:13:[/size]
ik begrijp wel wat je bedoel met koppelingen. Maar is voor mijn doel eingelijk toch niet nodig?
Ik denk dat je zeker koppelingen nodig hebt. Titels horen denk ik bij pagina's, en afhankelijk van of je een of meer titels hebt moet je vooraf bepalen of titels een eigen tabel krijgen met koppelingen naar de pagina's.
Verder had je het net over variabelen aanmaken. Dat is niet juist: Je hebt eigenlijk een variabele met daarin een genormaliseerde array. Een array is een container voor onbeperkte data.
Ik denk dat je zeker koppelingen nodig hebt. Titels horen denk ik bij pagina's, en afhankelijk van of je een of meer titels hebt moet je vooraf bepalen of titels een eigen tabel krijgen met koppelingen naar de pagina's.
Verder had je het net over variabelen aanmaken. Dat is niet juist: Je hebt eigenlijk een variabele met daarin een genormaliseerde array. Een array is een container voor onbeperkte data.
Klopt titels hoen bij een pagina net al tekst, tekstkleur links etc. van elk kun je meerdere hebben ook. ik heb dan ook meerdere pagina's met ook 1 of meerdere titels, teksten etc.. en elke pagina heeft meerdere html blokken die los van elkaar staan.
[/quote]
He arien. bedankt voor de info. is toch best wel ingewikkeld als je gebruik maakt van een database. althans hoe ik het graag wil hebben. Overigens het is bij mij niet de bedoeling een website met database te laten draaien hoor. Uiteindelijk wil ik gewoon een html pagina hebben. de evt. database is puur bedoeld voor het opbouwen van 1 of meerdere pagina's. Als deze eenmaal klaar zijn wordt elk paginabestand uiteindelijk omgezet naar een statische html pagina. Ik wil namelijk geen database gebruiken voor het laden van de site. Is puur mijn keuze hoor. Ook omdat een website met een database onderhoud kan vergen en dat wil ik niet.
zoals ik zei. is ook een persoonlijke keuze. een statische pagina is tevens ook sneller en vergt normaal gesproken juist geen onderhoud althans als je lokale scripts gebruikt zoals ik dat doe. Ik maak al enige tijd statische sites voor klanten en draaien al jaren zonder onderhoud. Maar ik gebruik dus geen external scripting of styling. want in dat geval heeft een site wel evt. onderhoud nodig. Ik maak nu dus sites puur door in de code te duiken etc en kost tijd. Bovendien zijn klanten ook wispelteurig. dan willen ze dat en dan weer dit. daarom wil ik een builder maken waarbij de klant zelf de pagina's kan samenstellen. ze kunnen daarbij alleen kiezen uit een bepaalde selectie aan units als het ware. zijn ze uiteindelijk tevreden dan zet ik deze online. Kost mij minder tijd en de klant krijgt doormiddel van wysiwyg direct te zien hoe het eruit ziet. uiteraard maak ik alleen sits voor klanten waarbij de site niet veranderd hoeft te worden. los van wellich een keer een andere foto of tekst op zijn tijd. Maar dat kan de klant dan weer zelf aanpassen indien nodig.
En dan zou je ook eens kunnen kijken hoe bijvoorbeeld Smarty werkt met het vullen van de inhoud in een template.
Je beperkt je nu ook in de naamgeving van de variabelen. $1eTitel is bijvoorbeeld niet toegestaan.
terwijl je met str_replace() geen beperking hebt in de te vervangen placeholders.
[size=xsmall]Toevoeging op 31/08/2023 22:30:05:[/size]
Verder ben je volgens mij de enige die zich zorgen maakt over het aanpassen van de pagina middels Inspect.
Er zit nog een knop in je browser die zorgt dat de pagina geheel verdwijnt namelijk.
(er staat een X op en staat helemaal rechtsbovenaan)
Daarnaast kunnen gebruikers ook met Zoom de site heel anders uit laten zien, mogelijk omdat ze slechte ogen hebben.
Of met leuke plugins kun je kleuren en layout aanpassen, omdat je dat beter kunt lezen.
Dat doet niets af aan hoe je pagina er voor elke standaard gebruiker uit gaat zien.