Toon posts:

[php] update meerdere rijen en kolommen in 1 keer

Pagina: 1
Acties:
  • 159 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een formulier waarmee ik gegevens update in een mysql database. Nu heb ik achter elk formulier een update en delete button staan.

Ik wil dus alle rijen +/- 60 in 1 keer kunnen wijzigen en met 1 druk op de knop allemaal kunnen updaten in de database.

Voorbeeld huidig:
Optie 1.1 - Optie 1.2 Optie 1.3 - Optie 1.4 - Update button
Optie 2.1 - Optie 2.2 Optie 2.3 - Optie 2.4 - Update button
Optie 3.1 - Optie 3.2 Optie 3.3 - Optie 3.4 - Update button

Voorbeeld nieuw:
Optie 1.1 - Optie 1.2 Optie 1.3 - Optie 1.4
Optie 2.1 - Optie 2.2 Optie 2.3 - Optie 2.4
Optie 3.1 - Optie 3.2 Optie 3.3 - Optie 3.4
Update button (voor allemaal)

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 17:07
Wat is nou precies het probleem? Wat heb je tot nu toe zelf al gescript?.

  • atttze
  • Registratie: Augustus 2001
  • Laatst online: 28-08 12:56
Misschien helpt je dit een beetje:

de naamgeving van de formulier velden kun je bijvoorbeeld als volgt doen:
naam_1.1 naam_1.2 naam_1.3 ...
...
dan kun je met een loop in je PHP script al die variabelen weer benaderen.

tip:
$var = "naam_1.1"
$$var = value van formulier hokje met de name naam_1.1
$$var is dus gelijk aan $naam_1.1
door $$ te gebruiken kun je dus runtime variabele namen genereren

je kan dan per rij de waarden opvragen en deze wegschrijven

Verwijderd

Topicstarter
Sybr_E-N schreef op 04 november 2002 @ 21:37:
Wat is nou precies het probleem? Wat heb je tot nu toe zelf al gescript?.
Tot nu toe heb ik het bovenste idee. Met een while loop haal ik alle gegevens uit de database. In diezelfde while loop sluit ik het formulier ook weer af.
Ik heb dus net zoveel losse formulieren op me pagina als dat er rijen zijn in de database. Wanneer ik 1 rij verander moet ik op de submit button klikken om de voglende te veranderen.

Ik wil dat het als optie 2 word. 1 formulier voor alle rijen. Dan kan ik alles in 1 keer veranderen en daarna op de submit button klikken.

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
En wat is nou het probleem met het 1 formulier voor je alle rijen??? Als ik vijf waarden kan veranderen met een update kan ik dat ook doen voor 60 waarden. Ongeacht hoe die op mijn html pagina gegroepeerd staan. Het blijft dezelfde actie.

Dus ik snap het probleem ook niet helemaal.

Verwijderd

atttze schreef op 04 november 2002 @ 21:39:
Misschien helpt je dit een beetje:

de naamgeving van de formulier velden kun je bijvoorbeeld als volgt doen:
naam_1.1 naam_1.2 naam_1.3 ...
...
dan kun je met een loop in je PHP script al die variabelen weer benaderen.

tip:
$var = "naam_1.1"
$$var = value van formulier hokje met de name naam_1.1
$$var is dus gelijk aan $naam_1.1
door $$ te gebruiken kun je dus runtime variabele namen genereren

je kan dan per rij de waarden opvragen en deze wegschrijven

Ik zou dus echt geen semi-eval constructies gaan bedenken. Er is een redelijk goed werkende manier:

Geef je elementen namen als optie[1][1], optie[1][2], en kijk dan nog eens naar wat je binnenkrijgt: print_r($_POST);

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 17:07
schematisch, ff uit ut hoofd:

<FORM>
<?php
//db connection en query
while ($row = mysql_fetch_array($result)) { //result is result van query
<INPUT type="text" name="optie[]">$row->optie<BR>
}
?>
<BUTTON UPDATE>
</FORM>

Dit is wat je zo ongeveer bedoelt.?

En daarna de variablen uitlezen met ,list( each()) of foreach(). en updaten in een while loopje.

Verwijderd

atttze schreef op 04 november 2002 @ 21:39:
Misschien helpt je dit een beetje:

de naamgeving van de formulier velden kun je bijvoorbeeld als volgt doen:
naam_1.1 naam_1.2 naam_1.3 ...
...
dan kun je met een loop in je PHP script al die variabelen weer benaderen.

tip:
$var = "naam_1.1"
$$var = value van formulier hokje met de name naam_1.1
$$var is dus gelijk aan $naam_1.1
door $$ te gebruiken kun je dus runtime variabele namen genereren

je kan dan per rij de waarden opvragen en deze wegschrijven
Begint wel een rage te worden die variabele variabelen. :X
Gebruik gewoon arrays name="naam[]" en doorloop ze met foreach

Verwijderd

Topicstarter
Momenteel ziet het er ongeveer zo uit:

<?php
while(statement) { ?>
<form method="POST" action="verwerk.php">
<p><input type="text" name="optie1" size="20"><input type="text" name="optie2" size="20"><input type="submit" value="Verzenden" name="send"></p>
</form>
<? } ?>


Als ik dus 100 rijen in me database heb die aan het statement voldoen krijg ik dus 100 formulieren.
Ik wil dus 1 formulier. Het formulier moet buiten de while loop geplaast worden (hehe). Maar hoe verstuur ik dan de data van alle rijen tegelijk?

Ik hoop zo iets duidelijker?

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 17:07
Zet die - <form method="POST" action="verwerk.php"> - && <input type="submit" value="Verzenden" name="send">
</form> -- eens uit die while loop. Dan heb je 100 rijen in welgeteld 1 formulier met 1 button.

/edit je moet nix tussen de [ en de ] zetten dus gewoon -> bagger[]

Verwijderd

Topicstarter
Verwijderd schreef op 04 november 2002 @ 21:54:
[...]


Begint wel een rage te worden die variabele variabelen. :X
Gebruik gewoon arrays name="naam[]" en doorloop ze met foreach
Ben misschien een beetje groen hoor. Maar dat heb ik idd gelezen ergens via google.

Maar wat moet ik dan precies tussen de [ en ] zetten?

Verwijderd

Sybr_E-N schreef op 04 november 2002 @ 22:03:
Zet die - <form method="POST" action="verwerk.php"> - && <input type="submit" value="Verzenden" name="send">
</form> -- eens uit die while loop. Dan heb je 100 rijen in welgeteld 1 formulier met 1 button.

/edit je moet nix tussen de [ en de ] zetten dus gewoon -> bagger[]

Waarom moet je niks tussen de haakjes zetten? Stel ik wil op de pagina die je nu voor je hebt bij wijzen van admin functie een hokje bij elke post, die ik kan aanvinken, zodat ik ze in één keer kan trashen. Dan zou je dus het best de post_id tussen die vierkante haakjes kunnen zetten, dat scheelt een hoop ellende.

En in het geval van meerdimensionale array's kan je sowieso niet om het zelf invullen van waarden tussen de vierkante haakjes heen.

Verwijderd

Topicstarter
Als ik die form tags buiten de while loop laat vallen hoe weet php dan dat een serie "velden"/formuliervelden bij elkaar horen?

Ik ga er dus vanuit dat ik wat tussen die haakjes moet zetten maar mij is zeker niet duidelijk wat en hoe.

Heeft iemand misschien hier een goede tutorial over, ik kan nl. niks vinden in google.
Pagina: 1