[PHP/MySQL] Eén veld in alle records wijzigen

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

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb lang nagedacht over dit probleem en mijn best gedaan om met een oplossing te komen, maar het wil niet lukken. Opzich heb ik wel een idee, maar ik weet niet hoe ik dat verwerk in een stukje PHP / MySQL query.

Het gaat om het volgende: ik heb een tabel STRUCTURE met enkele velden, zoals ID, TITLE, URL en VOLGORDE. Ik heb een pagina die een lijstje op het scherm tovert met alle titles onder elkaar. Naast elke TITLE staat een tekstvakje waar het getal dat bij het veld VOLGORDE hoort instaat. :)

Mijn vraag is: hoe kan ik de waarden in de tekstvakjes opslaan in de MySQL-database? Immers, het is niet zo dat er verschillende velden in één record gewijzigd moeten worden, maar juist andersom: er moet één veld in verschillende records worden gewijzigd, terwijl de waarde voor elk record anders is! :o

Ik had bedacht dat het mogelijk is om dit te doen door een Array te maken met alle ID's erin. Op die manier kan ik dan later een MySQL-query maken met zoiets als: UPDATE structures .... WHERE id='arraywaarde'. Vervolgens zorg ik voor een do-loop-while loop die doorloopt todat alle records zijn gewijzigd. Maar daarmee is het probleem nog niet opgelost: ik moet immers in de query aangeven welke tekstvakjes hij in een bepaald record moet invoeren. Ik weet niet goed hoe ik dat kan aanpakken... :(

Wie helpt me verder? Ik moet dus een array met alle ID's erin zien te maken en ook nog eens een query maken die de juiste tekstvakjes verwerkt.

Ik hoop dat iemand me een eind op weg helpt! :Y)

[ Voor 3% gewijzigd door Verwijderd op 29-09-2003 12:06 . Reden: Spelling en grammatica ]


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 snapt het niet...

Zoek je iets als:
SQL:
1
Update tabel set veld = veld +1 Where ID In (1,2,3,4)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Jurgle
  • Registratie: Februari 2003
  • Laatst online: 24-06 00:27

Jurgle

100% Compatible

* Jurgle doet een gooi, maar vindt ook dat de probleemomschrijving niet helemaal duidelijk is.

Je hebt in HTML een form, met een aantal rijen 'title', 'volgorde' zet daar een extra veld (hidden) 'id' bij. Vervolgens loop je alles door:

PHP:
1
2
3
4
5
6
$queries = "";

for($i = 0; $i < count($_GET['id']); $i++)
   $queries .= "UPDATE `tabel` SET `volgorde` = '".$_GET['volgorde'][$i]."' WHERE `id` = '".$_GET['id']."';\n";

$jouw_eigen_mysql_query_handler->query_db($queries);


Voorwaarde is wel dat je in het form je variabelen in arrayvorm meegeeft:
HTML:
1
2
<input type="hidden" name="id[]" value="WAARDE">
<input type="text" name="volgorde[]" value="WAARDE">

[ Voor 38% gewijzigd door Jurgle op 29-09-2003 13:09 ]

My opinions may have changed but not the fact that I am right ― Ashleigh Brilliant


Acties:
  • 0 Henk 'm!

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 17-09 06:59

Eelke Spaak

- Vlad -

Ook ik vind je probleem niet helemaal perfect geformuleerd, maar als ik het goed begrijp heb ik denk ik wel een oplossing.

Je kan het beste gewoon elk record updaten wat op het formulier heeft gestaan. Dus een lus maken die door alle tekstvakjes heenloopt, en dan het bijbehorende record in de DB update. Op deze manier wordt elk veld wat gewijzigd is, ook ge-update in de database; de velden die niet zijn aangepast worden wel ge-update, maar naar dezelfde waarde als die ze al hadden. Performance-technisch is dit nogal brak, maar ja.

TheStreme - Share anything with anyone