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!!

Via onderstaande script wordt alles dus ingelezen


<?php

$servername = "xxxxx";
$username = "xxxx";
$password = "xxxx";
$dbname = "xxxxx";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, content1, content2 FROM content2";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Content1: " . $row["content1"]. " - content2: " . $row["content2"]. "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();
?>


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!!

$rij1titel1 = $row['rij1titel1'];
$rij1titel2 = $row['rij1titel2'];
$rij90tekst1 = $row['rij90tekst1'];
$rij90tekst2 = $row['rij90tekst2'];

zit zorgt er uiteindelijk ook voor dat ik de inhoud kan worden weergeven in php


<h1>Onderstaand de weergave van de inhoud</h1>
<h1 contenteditable="plaintext-only"><?php echo $rij1titel1; ?></h1>
<h2 contenteditable="plaintext-only"><?php echo $rij1titel2; ?></h1>

<p contenteditable="plaintext-only"><?php echo $rij90tekst1; ?></p>
<p contenteditable="plaintext-only"><?php echo $rij90tekst2; ?></h1>


h1 zou dus "hallo iedereen" moeten weergeven etc.. etc..
haha. ja nou stel iemand gaat in de inspector duiken met het idee ik wil graag andere code toevoegen en/of iets aan de layout willen aanpassen. als hij dan de hele pagina opslaat dan klopt de weergave niet meer. Op zich geen groot probleem. Is vrij eenvoudig te verhelpen. Maar als het anders kan dat dat voorkomt dan zou dat handig zijn.
Opnieuw opslaan? De Inspector is geen editor om site mee te bouwen, dat weten 99,99% van de mensen, verwacht ik.
Vergeet die gedachte over die Inspector gewoon, want iedereen kan gewoon een site lokaal aanpassen. Als ik PHPhulp lokaal een regenboog-achtergrond wil geven, dan zal eigenaar Bas er niks van vinden hoor ;-).

Maar voor voor zover ik begrijp heb je per pagina die je genereert een aantal elementen, zoals titels en tekstblokken, die je maar een vast aantal keren kan gebruiken? Klopt dat?
het hele systeem is nog in opmaak. Maar ja de toekomstige klant kan dus een gedeelte van de body sectie vanuit het php bestand opslaan. Dit gebeurd via een save knop in een apart menu binnenin het bestand.. Als je de inspector dus wijzingen aanbrengt in dat gedeelte wordt dat dus ook opgeslagen. niet dat iemand dat snel zal doen. wellicht moet ik mij daarover i.d.d niet zo druk maken. Per pagina komen meerdere elementen onder elkaar. elk element (dus bijv. element a) kan ook meerdere keren voorkomen Elke pagina die wordt gegenereerd heeft nog enkel element. Is kaal. elementen worden aan de hand van keuzes via formuieren toegevoegd. Elk element krijgt dan via een div een uniek rijnummer toegekend.

zoals dit

 
<div rijnummer="rij1"> 
<p>hallo dit is element hero1</p>

</div>

<div rijnummer="rij2">
<p>hallo dit is ook element hero1</p>

</div>



Ik zou het je graag persoonlijk een keer willen laten zien. Maar kan deze link niet openbaar delen.
Je bent altijd vrij om een kleine (anonieme) testcase te delen. Bij voorkeur op JSfiddle.net.

In jouw situatie moet je dus steeds je CSS aanpassen voor elke nieuwe rij (waarom weer nummeren? Zeg ook hier liever WAT dit doet), en dus ook steeds de HTML. verder is rijnummer geen bestaand attribuut. Als je eigen attributen aan HTML wilt hangen, kijk dan naar data-attributen: https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes

[size=xsmall]Toevoeging op 02/09/2023 11:35:40:[/size]

Verder heb ik geen idee hoe je erbij komt dat wijzigingen in de Inspector worden opgeslagen? Dat is helemaal niet zo, en na een refresh is alles weer ongedaan gemaakt.
zoals ik al zei. persoonlijk is het makkelijker dingen te laten zien en toe te lichten. het hele systeem is ook vrij eenvoudig ogebouwd t.o.v. andere bekende systemen. per element zit een aparte styling en evt. script. elk element staat op zich. ik hoef de opmaak dus nooit aan te passen. Ik gebruik dus ook geen framework. als ik elk element los behandel is dit veel eenvoudiger te onderhouden voor mij. elk element heeft ook weer unieke classes uiteraard, anders botst dit met anderen. nummeren is nodig omdat ik een element met het onderste of bovenste element wil verwisselen. Dan moet deze dus een uniek kenmerk hebben. aangezien elementen boven elkaar worden gelegd moet ik dus nummeren. zoals ik al zei het rijnummer is uniek en wordt door het systeem gegenereerd. de nummering kan ik theoretisch ook in de div van het element zelf onderbrengen, maar dat gaat niet omdat soms daar al een id voorkomt voor het laten functioneren van het element. en ik kan geen 2 id's hebben voor 1 div element. Als de pagina klaar is wordt hier vervolgens een html bestand van aangemaakt zonder alle editor zaken en toeters en bellen. het rijnummer is dus ook puur bedoeld voor editing en kan uiteindelijk ook worden weg gefilterd bij het converteren naar een html bestand. Mijn werkwijze wijkt zeker af van wat standaard is. Maar het werkt voor wat ik wil. waarom html pagina's? simpel. heb alleen klanten die kiezen voor een statische pagina, omdat ze niet afhankelijk willen zijn van een database. en deze klanten bloggen in principe ook niet. al zou ik voor het blog hetzelfde kunnen doen.


[size=xsmall]Toevoeging op 02/09/2023 11:38:14:[/size]

en het voordeel van het systeem is dat een toekomstige klant gewoon zelf puur zonder kennis de pagina kan opbouwen. Terwijl ik eraan werk kan de klant bijv. ook live meekijken. of als de klant werkt kan ik meekijken. Met wordpress is dat wat ik wil niet mogelijk. wordpress is voor veel gebuikers ook te complex. en ik wil het prijstechnisch ook voordeliger houden.
Als ik zo lees, zou je prima uit de voeten kunnen met TinyMCE of CKeditor in samenwerking met wat eigen widgets.

Of anders met UBBcodes?

Het nummeren van databasevelden of opmaakelementen is ook nergens voor nodig. Je wil voor de opmaak weten wat het doet. Hoofd titel? Subtitel?

Als ik jouw structuur lees, vrees ik dat dit op den duur erg onoverzichtelijk gaat worden, of zelfs lastig schaalbaar.

Ik vind alleen je argumenten over de database nog behoorlijk zwak. Maar ieder zijn keuze. Je gebruikers horen zich daar ook geen zorgen over te maken.
beste argument: ik wil geen onderhoud hebben verder als ik een website laat draaien met een database op de achtergrond. je bent immers afhankelijk van php en de versie die de provider ondersteund. als je de phpo versie moet updaten kan het zijn dat het php script niet meer werkt. hierdoor kan het dus voorkomen dat de site ook niet meer draait. ken bijv. mensen die een wordpress website hadden en die is vastgelopen. Ik en de klant moeten zich daar geen zorgen over maken. de site die ik oplever is uiteindelijk gewoon puur html. zoals ik al aangaf is het php en evt. database gewoon nodig om 1 of meerdere pagina's op te maken.

[size=xsmall]Toevoeging op 02/09/2023 12:24:31:[/size]

uiteindelijk blijft er gewoon html over dat stabiel is en de komende jaren geen onderhoud nodig heeft.
Dus alle tips over PHP in dit topic zijn ook overbodig, wil je zeggen? Zonder PHP zal een site nooit geautomatiseerd kunnen worden.

Alle klanten zijn dus van jou afhankelijk voor elke update, en zij moeten dus wachten als jij 3 weken op Honolulu zit te zonnen? :-D

Ik blijf je standpunt bijzonder vinden in mijn 20 jaar PHP kennis. :-P


alle tips en hulp zijn zeker welkom. heb er al veel aan gehad. ook de tips en links in dit topic waren zeer welkom. er zijn toch voldoende sites die statisch zijn. en nee. de klant is niet afhankeijk van updates. want zoals ik al zei. alle styling en evt. javascript draait lokaal en wordt niet extern geladen en maken du ook geen gebruik van php. ze draaien al jaren zonder onderhoud. en uiteraard geef ik garantie de eerste jaren. als een element het niet doet dan verhelp ik dat uiteraard. en eerlijk is eerlijk, heb dat slechts 1 keer meegemaakt in de laatste jaren.

[size=xsmall]Toevoeging op 02/09/2023 12:50:45:[/size]

en nee ik heb nooit vakantie helaas. Maar dwalen nu een beetje af waar dit topic over begon.

[size=xsmall]Toevoeging op 02/09/2023 12:52:56:[/size]

uiteraard zal een site vervolgens achterhaalt zijn. maar dat duurt toch wel lang.
Okay dan. Maar maak het jezelf niet te moeilijk, want ik heb het idee dat je het nodeloos complex lijkt te maken.

Reageren