<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML sjabloon</title>
</head>
<body>
<form action="index.php" method="post" accept-charset="UTF-8"><?php
for ($i=0; $i < 5; $i++) {
?><p>
<label for="runame_<?php echo $i ?>">veld <?php echo ($i + 1) ?></label>
<input type="text" name="runame[]" id="runame_<?php echo $i ?>" value="" />
</p><?php
}
?><p>
<button type="submit">Save</button>
</p>
</form>
</body>
</html>
<?php
// ... maak connectie database
//
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['runame']) && is_array($_POST['runame'])) {
echo '<pre>'.print_r($_POST['runame'], true).'</pre>';
// de volgende code is nieuw toegevoegd
If (isset($_POST['runame'])) {
$runame = $_POST['runame'] ;
$sql = "CREATE TABLE `$runame` (linkoms VARCHAR(80), linkadd VARCHAR (80) )" ;
}
} else {
?><p>fout: veld 'runame' niet aanwezig of is geen array</p><?php
}
}
?>
Bovenstaande script kan ik gaan gebruiken om de variabelen toe te voegen in de database
Ik krijg helaas de foutmelding Array to string conversion en daarna het volgende:
Een array kun je beschouwen als een functie: je stopt er een waarde in en er komt een (mogelijk andere) waarde uit.
Wat jij in het bovenstaande fragment probeert te doen is in één keer van een hele lijst een tabel te maken terwijl je deze lijst zou moeten doorlopen en in elke stap van het doorlopen van de lijst een tabel aanmaken.
Ik weet niet of je deze opzet moet volgen, te meer omdat het er op lijkt dat deze tabellen enige structuur missen.
Je moet het zo zien, in beginsel heb je een database, vaak gebruik je in je hele applicatie slechts één database.
In een database zitten tabellen. Elke tabel heeft een specifiek doel, m.a.w., slaat specifieke informatie op. Je hebt bijvoorbeeld een "users" tabel, hierin staat informatie over gebruikers.
Elke tabel heeft een structuur, deze staat omschreven in zijn tabeldefinitie waarin de verschillende informatie-elementen staan omschreven.
In een tabel kun je meerdere "sets" gegevens opslaan, elke rij gegevens (ook wel "record" genaamd) in de tabel bevat één set. Vaak wordt een uniek nummer toegevoegd aan de structuur om de sets onderling te kunnen onderscheiden.
Vergelijk dit met een spreadsheet: als elke tab verschillende informatie bevat zijn je tabs je tabellen. Elke rij in je spreadsheet is een record. Elke kolomheading bevat een structuuromschrijving van die kolom.
Wat jij in het bovenstaande codefragment probeert te doen, is het aanmaken van een tabel die elke keer dezelfde structuur heeft. Dit is helemaal niet nodig, want je kunt meerdere regels (records) informatie opslaan in één enkele tabel.
Tenzij de tabelnaam op een of andere manier betekenis heeft? Maar zelfs dan is het beter om een andere opzet te gebruiken.
Maar om tot een goede opzet te komen, moeten we weten wat je precies probeert te bereiken. Anders kunnen we slechts raden naar de beste structuur die je moet gebruiken om je doel te bereiken.
En daar hebben we nu al ongeveer 20x om gevraagd... Wat probeer je uiteindelijk te doen?
(nogmaals) Zolang je deze vraag niet beantwoord kunnen we je niet helpen.
Nee geen functie. Een functie doet iets en een array() niet.
Een array() is gewoon een manier voor opslag van gegevens.
Eigenlijk gewoon een variabele met meerdere vakjes (of sets).
Als je weet dat het Engelse array in het Nederlands gewoon een matrix is, dan gaat er bij velen eerder een lampje branden. Dat is dus een datastructuur die veel wegheeft van een tabel (of een rij in een tabel) en waarmee je verschillende (matrix)operaties kunt uitvoeren.
Nee geen functie. Een functie doet iets en een array() niet.
Een array() is gewoon een manier voor opslag van gegevens.
Eigenlijk gewoon een variabele met meerdere vakjes (of sets).
Ik bedoelde meer een wiskundige functie (f(x)). Het mapt een waarde x naar een andere waarde y. Een array doet niet veel anders?
Uitgaande van ƒ(x) = y lijkt het inderdaad erg veel op elkaar, maar bij een functie gaat het vooral om een transformatie en bij een array meer om een locatie of translatie voor het “mappen” van x naar y.