Meerdere velden en kolommen in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

29/09/2004 23:02:00
Quote Anchor link
Hallo iedereen,

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
 
PHP hulp

PHP hulp

16/01/2025 09:09:14
 
Elwin - Fratsloos

Elwin - Fratsloos

29/09/2004 23:12:00
Quote Anchor link
Als je alle rijen hetzelfde wilt hebben dan volstaat deze:
UPDATE tabel
SET kolom1 = 'waarde1', kolom2 = 'waarde2', etc = 'etc'

Zo niet dan moet je zoiets hebben:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
}

?>


Elwin
 

29/09/2004 23:40:00
Quote Anchor link
Iig bedankt voor je snelle antwoord.

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="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $_SERVER['PHP_SELF']; ?>
" name="1">
<input type="hidden" name="submit" value="1"></input>
<input type="text" name="nummer" size="6" class="input" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $a->nummer; ?>
"></input><br>
<input type="submit" value="Opslaan" class="input">
</form>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?

}
}


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

29/09/2004 23:42:00
Quote Anchor link
Allereerste < ? vergeten.

Code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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)) {

?>


<form method="POST" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $_SERVER['PHP_SELF']; ?>
" name="1">
<input type="hidden" name="submit" value="1"></input>
<input type="text" name="nummer" size="6" class="input" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $a->nummer; ?>
"></input><br>
<input type="submit" value="Opslaan" class="input">
</form>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?

}
}


else {

mysql_query("UPDATE wedstrijden SET nummer = '$nummer' WHERE id = '1'");  

}


?>
 
Mary

mary

01/10/2004 14:14:00
Quote Anchor link
Je kan een array als naam geven :

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.
 
Mary

mary

01/10/2004 14:15:00
Quote Anchor link
Heb even een testcaseje (test.php) geschreven ;-)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.