Meerdere velden en kolommen in database
ik heb een probleempje, en misschien kunnen jullie mij daarbij helpen.
Ik wil in een database een tabel maken met totaal 11 velden en een x-aantal rijen. Nu wil ik met behulp van één submit knop de waarden van alle velden in alle rijen veranderen. Hebben jullie een idee of en hoe dat kan??
Bij voorbaat dank!
Groet Joeri
UPDATE tabel
SET kolom1 = 'waarde1', kolom2 = 'waarde2', etc = 'etc'
Zo niet dan moet je zoiets hebben:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// Eerst alle rijen selecteren
$sql = "SELECT id FROM tabel";
$query = mysql_query($sql);
// Nu rij voor rij gaan updaten:
while ($id = mysql_fetch_row($query))
{
$sql = "UPDATE tabel
SET kolom1 = 'kolom1', etc = 'etc'
WHERE id = ".$id[0];
$update = mysql_query($sql);
}
?>
// Eerst alle rijen selecteren
$sql = "SELECT id FROM tabel";
$query = mysql_query($sql);
// Nu rij voor rij gaan updaten:
while ($id = mysql_fetch_row($query))
{
$sql = "UPDATE tabel
SET kolom1 = 'kolom1', etc = 'etc'
WHERE id = ".$id[0];
$update = mysql_query($sql);
}
?>
Elwin
Ik ben een beetje aan het stoeien geweest met je antwoord, maar ben er toch niet helemaal uit gekomen. Misschien dat je me wat meer kan helpen als ik een stukje van mijn formulier laat zien.
Globaal ziet het er zo uit. Ik heb nu nog maar 1 veld, alleen "nummer". Nu moeten daar nog meer velden naast komen, bijvoorbeeld "naam" en "leeftijd". En in elke rij moeten voor elk veld andere waarden ingevuld worden. De rijen krijgen gewoon id= 1 t/m 12.
if(!$submit){
$query = mysql_query("SELECT * FROM wedstrijden WHERE id = '1'") or die (mysql_error());
while ($a = mysql_fetch_object($query)) {
?>
<form method="POST" action="" name="1">
<input type="hidden" name="submit" value="1"></input>
<input type="text" name="nummer" size="6" class="input" value=""></input><br>
<input type="submit" value="Opslaan" class="input">
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?
}
}
else {
mysql_query("UPDATE wedstrijden SET nummer = '$nummer' WHERE id = '1'");
}
?>
}
}
else {
mysql_query("UPDATE wedstrijden SET nummer = '$nummer' WHERE id = '1'");
}
?>
Het bovenstaande werkt iig naar behoren. Maar nu wil ik dus meerdere rijen met één submit knop updaten. Dan moeten er toch meerdere formulieren komen (met name = 1 t/m 12), maar dat werkt weer niet samen met één submit knop...
Code:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
if(!$submit){
$query = mysql_query("SELECT * FROM wedstrijden WHERE id = '1'") or die (mysql_error());
while ($a = mysql_fetch_object($query)) {
?>
if(!$submit){
$query = mysql_query("SELECT * FROM wedstrijden WHERE id = '1'") or die (mysql_error());
while ($a = mysql_fetch_object($query)) {
?>
<form method="POST" action="" name="1">
<input type="hidden" name="submit" value="1"></input>
<input type="text" name="nummer" size="6" class="input" value=""></input><br>
<input type="submit" value="Opslaan" class="input">
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?
}
}
else {
mysql_query("UPDATE wedstrijden SET nummer = '$nummer' WHERE id = '1'");
}
?>
}
}
else {
mysql_query("UPDATE wedstrijden SET nummer = '$nummer' WHERE id = '1'");
}
?>
bv :
<input type='text' name='nummer[]'>
<input type='text' name='leeftijd[]'>
...
Dit doe je 12 keer (of zoveel je het nodig hebt). Bij het posten van het formulier worden alle waardes in de array's geplaatst.
Zoiets als
nummer[0] = 1e invulveld voor nummer, nummer[1] = 2e invulveld voor nummer...
leeftijd[0] = 1e invulveld voor leeftijd...
Op die manier kun je gewoon de array's uitlezen in een for-lus of iets dergelijks en dan de rijen laten wegschrijven in je db.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?
echo "<form method='post' action='test.php'>";
echo "<input type='text' name='nummer[]'><br>";
echo "<input type='text' name='nummer[]'><br>";
echo "<input type='text' name='nummer[]'><br>";
echo "<input type='submit' name='submit' value='submit'>";
echo "</form>";
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>
echo "<form method='post' action='test.php'>";
echo "<input type='text' name='nummer[]'><br>";
echo "<input type='text' name='nummer[]'><br>";
echo "<input type='text' name='nummer[]'><br>";
echo "<input type='submit' name='submit' value='submit'>";
echo "</form>";
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>