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..
Ik vrees dat je een enorme spaghetti-boel gaat krijgen als je variabelen gaat nummeren.

Verdiep je eens in multidimensionale array's, zoals bijv. $string[90][1] wat staat voor: string uit rij 90, tekst 1.

Een goede database-structuur die genormaliseerd is mag ook zeker niet ontbreken. Velden en tabellen nummeren is echt not done.
Bedankt voor je reactie. Ik weet niet of wij hetzelfde bedoelen. Ik bedoel eingelijk meer dat de naam van de variable dus in de database staat.

dus stel in de database staan 2 entry's waarbij content1 dus "heading1" en "heading2" bevat en content2 resp. "hallo" en "welkom".

vervolgens moet dit dus het resultaat worden:

$heading1 (dus de inhoud van de 1e entry van content1) = hallo (inhoud 1e entry van content2).
$heading2 (dus de inhoud van de 2e entry van content1) = welkom (de inhoud van de 2e entry van content2)

Of kan dat juist wel op de wijze hoe je het aangeeft?
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];
Dan alsnog is dit niet de juiste weg om in te slaan.
Waarom zou je variabelen willen kopiëren?

Als ik zo naar het scriptje kijk dan lijkt het me weinig boeiend of dit de juiste weg is. Die is toch al in geen velden of wegen te vinden. Zolang het maar werkt lijkt me afdoende.
Evert Bennekom op 31/08/2023 17:49:20

Als ik zo naar het scriptje kijk dan lijkt het me weinig boeiend of dit de juiste weg is. Die is toch al in geen velden of wegen te vinden. Zolang het maar werkt lijkt me afdoende.

Met zo'n motivatie is het wachten tot je fouten gaat maken, en je applicatie uiteindelijk met plakband in elkaar hangt, bij wijze van spreken. Je zult zien dat als je op die manier verder gaat, dat je jezelf in de voeten schiet, en dat repareren uiteindelijk steeds meer pijn zal doen.

Als je iets bouwt, probeer het dan minimaal goed te doen en volg advies van anderen.

Helaas heb ik vaker scripts gehad die ranzig gebouwd waren, waarbij ik geweigerd heb om deze op te knappen.
Ik snap wat je bedoeld Ariën. Mijn punt is dat de vraagsteller (niets kwalijks mee bedoeld Paul) kennelijk geen pro-programmeur is maar gewoon lekker aan het freubelen is aan iets dat hij kennelijk leuk of nuttig vind.

Afhankelijk van wat Paul zelf wil (skills verbeteren of eenmalig hobbyprojectje afronden) kan hij later altijd nog meer inzicht vergaren door (tikkie ouwerwets maar soit) een goed boek te kopen en/of een cursus te volgen of compleet autodidact gaan. Maar dat lijkt me niet de intentie hier.

En dan over het wachten tot je fouten gaat maken. Ja natuurlijk gaat hij dat. Ik maak ze nog dagelijks en toen ik net met programmeren begon........ nou laten we maar zeggen dat die code gelukkig gewist is van het internet :D
Je hoeft geen pro-programmeur te zijn.
Aldoende kom je steeds een stapje hogerop. :-)

En als je vragen hebt, en die op een forum stelt, dan is het normaal dat je ook adviezen krijgt.
he arien. ik begrijp echt helemaal wat je bedoeld hoor. zeker bedankt voor je advies. Het is ook mijn bedoeling uiteindelijk om het goed te doen. Wil ook de juiste weg gaan bewandelen natuurlijk. echter op dit moment ontbreekt het mij aan voldoende kennis om alles in php te weten hoe zaken te realiseren.

Reageren