Hi!
Ik ben net begonnen met php en tot dus ver heb ik al heel veel aan deze website gehad. Op het volgende probleem heb ik echter nog geen oplossing kunnen vinden ook via google en andere sites kan ik niks vinden. Hopelijk kan een van jullie me helpen.
Ik probeer een beheerpagina te maken voor mysql waarin ik in alle tabellen in mijn database kan toevoegen, wijzigen en verwijderen. Ik wil niet voor elke tabel een apart script schrijven omdat ik nog niet weet hoeveel tabellen er uiteindelijk in de database gaan komen en ook het aantal en de namen van de velden kunnen nog wijzigen.
Nu heb ik het volgende gedaan om iets te kunnen toevoegen in een geselecteerde tabel ($titel = tabelnaam eerder gespecificeerd). Onderstaande form werkt prima maar laat ik zien om jullie een idee te geven van wat ik bedoel:
<?
echo "<form method='post' target='_self'>";
echo "<table width='100%' cellspacing='5' border='1'>";
echo "<tr>";
$tabel = "SELECT * FROM $titel";
$tabel_result = mysql_query($tabel) or die(mysql_error());
while ($field = mysql_fetch_field($tabel_result))
{
echo "<td bgcolor=blue>$field->name</td>\n";
}
echo "<tr>";
for ($j = 0; $j < mysql_num_fields($tabel_result); $j++) {
echo "<TD><input type='text' name='$j'></TD>";
}
echo "<tr>";
echo "<td class='none'><input type='submit' name='toevoegen' value='go' ><br>";
echo "</tr>";
echo "</table>";
echo "</form>";
?>
Nu wil ik deze waarden in een “mysql_query(INSERT INTO (velden) VALUES (waarden)” statement invoeren. En dit is dus mijn probleem...
Ik heb 2 dingen geprobeerd. Ten eerste om het via een array op te lossen:
<?
$select = mysql_query("SELECT * FROM $titel") or die(mysql_error());
$aantal = mysql_num_fields($select);
$teller = 1;
$tel = 1;
$t = 1;
$veld = array();
$waarde = array();
while($teller <= $aantal){
while ($field = mysql_fetch_field($select))
{
array_push($veld, $field->name);
$teller++;
}
}
while($tel <= $aantal){
array_push($waarde, $_POST[$tel-1]);
$tel++;
}
while($t <= $aantal){
mysql_query(INSERT INTO $titel ($veld[$t-1]) VALUES ($waarde[$t-1])or die(mysql_error());
$t++;
}
?>
Dit genereerd de volgende fout melding:
Parse error: syntax error, unexpected T_STRING in /home/myfitness/domains/myfitnessmanager.com/public_html/prog/stseig/nwreg.php on line 36
De andere manier die ik geprobeerd heb is:
<?
$velden = while($teller <= $aantal){
while ($field = mysql_fetch_field($select)) {
if($teller != 1){
echo ", ";
};
echo $field->name;
$teller++;
};
};
$waarden = while($tel <= $aantal){
if($tel != 1){
echo ", ";
};
echo $_POST[$tel-1];
$tel++;
};
?>
Maar ook dit werkt niet omdat ik while niet kan gebruiken om een variabele te declareren. Heeft iemand een idee hoe ik de veldnamen en de waardes uit het FORM in mijn database krijg zonder vooraf de veldnamen van al mijn tabellen in te voeren?
Alvast heel erg bedankt voor jullie hulp!
951 views