login  Naam:   Wachtwoord: 
Registreer je!
 Forum

meerdere velden met dezelfde variabele updaten (Opgelost)

Offline Meulenhof - 07/05/2010 15:06 (laatste wijziging 07/05/2010 15:15)
Avatar van MeulenhofLid Momenteel ben ik bezig met een voorraad systeem (in mijn geval toners)

NU heb ik al rond gezocht op "meerdere velden updaten" maar niet 1 topic komt met mijn probleem overeen.

Plaatscode: 139317

voorraad_1
voorraad_2
enz

de nummers zijn de unieke id's (veld: id), de voorraad (veld: voorraad) is hoeveel er nog op voorraad is. Als ik geen id mee geef veranderd alles naar hetzelfde omdat het veld voorraad overal hetzelfde is als ik geen id zal geven.

Het probleem zit hem, hoe is de update query?
Normaal pas je unieke velden aan en kun je updaten (email, website, ondertitel WHERE gebruiker). In mijn geval als ik het id niet mee geef is het overal voorraad, dat werkt dus niet. Dus geef ik id mee, alleen dan klopt de veld waarde niet voorraad_1 enz bestaat niet, moet dus iets worden van opsplitsing, voorraad_1 = voorraad veld met unieke id 1 enz.

Alleen weet ik totaal niet hoe de code word.

http://i42.tinypic.com/5my7md.png

Hier de structuur
Plaatscode: 139318

6 antwoorden

Gesponsorde links
Offline Louis_ - 07/05/2010 16:52 (laatste wijziging 07/05/2010 16:56)
Avatar van Louis_ Nieuw lid Ik snap je vraag niet echt.

Maar ik denk dat je het jezelf onnodig moeilijk maakt.
Als je het voorraadgetal 1 verhoogt, kan je toch gewoon een query laten uitvoeren die een 1 nieuw record van dat tonertype aanmaakt?

Of andersom als je het voorraadgetal 1 verlaagd, zorg je voor een query die 1 record van dat tonertype verwijderd.
Offline Jelmerholland - 08/05/2010 00:32
Avatar van Jelmerholland PHP beginner Je kan toch gewoon zoiets doen in een query? (Geen zin om de exacte code te maken, dus zal wel vol zitten met fouten)

  1. $i = $_POST['UpdateWaarde'] //Dit wordt je waarde vanuit je post. Dus met hoeveel je 'm verlaagd etc.
  2.  
  3. $query =
  4. UPDATE tabel
  5. SET waarde1 = $i //ff escapen


If je doet iets met een if-functie. Je haal eerst de oorspronkelijke waarde op. Is de waarde van nu bijv -2 (omdat je er 2 uit je database wilt halen) dan voer je een snippet uit waar je de waarde van de tabel -2 doet. En is het +2, precies omgedraaid. En dan je tabel updaten.
(I'm sure: Dit kan in 1 query, maar ik weet niet hoe ;) )
Offline Meulenhof - 08/05/2010 02:10
Avatar van Meulenhof Lid Even verduidelijken:

Zie structuur:
A: (1, 'Q1338A / 38A', 2, 1, '2010-05-07 12:42:37'),
B: (2, 'C4092A / 92A / EP-22', 0, 2, '2010-05-07 12:43:21'),

Even vertalen
A komt er zo uit te zien: name="voorraad_1" (nummer is het id, de naam voorraad is voor veldnaam 'voorraad' maar het moet uniek zijn anders update alles naar hetzelfde), dan toner type (Q1338A / 38A), dan de voorraad die liggen er in dit geval 2, en dan het model
B komt er zo uit te zien: name="voorraad_2" (nummer is het id, de naam voorraad is voor veldnaam 'voorraad' maar het moet uniek zijn anders update alles naar hetzelfde), dan toner type (C4092A / 92A / EP-22), dan de voorraad die liggen er in dit geval 0, en dan het model.

Nu gaat er bij A 1 toner weg. Bij B komen er 1 binnen, dus ik vul in 1 en 1 en wil gaan updaten (in 1x dus).

Maar hoe wordt de update query, aangezien name="voorraad_2" geen veldnaam is maar 'voorraad' is een veldnaam, het nummer doe ik erbij omdat het aan het id is gekoppeld om het uniek te maken.
Offline Ray71 - 16/05/2010 23:51 (laatste wijziging 17/05/2010 22:12)
Avatar van Ray71 Nieuw lid Zoek ff een uitleg voor een update Query.

je moet iets doen als dit:


  1. $id=$_POST['TONER_ID']; // moet dus ook alleen een getal zijn post deze gewoon met een hidden field.
  2. $ink_vk=$_POST['WAARDE IS + of -']; // voeg hiervoor in je form een checkbox option inkoop of verkoop toe met de values + of -
  3. $aantal=$_POST['wijzigings aantal'];
  4.  
  5. $voorraad_wijziging=$ink_vk."".$aantal;
  6. QUERY:
  7.  
  8. UPDATE printer_toners SET voorraad=voorraad '$voorraad_wijziging' WHERE '$id'=id


edit: terug naar form dmv headerlocation.

FF update:
ben niet helemaal volledig geweest:

genereer je form met een select query op alle tabellen waar benodigde info instaat en een while loop
in de loop doe je het zoiets als het volgende:
  1. <?php
  2. while(){
  3. ?>
  4.  
  5. <form name="form1" method="post" action="URL van pagina">
  6. <tr>
  7. <td><input type="text" size="1" name="wijzigings aantal" value="" class="input-text" />Voorraad status:<?php echo $array['VOORRAAD']; ?> </td>
  8. <td><?php echo $array['TONER_NAAM']; ?></td>
  9. <td><?php echo $array['PRINTER_MODEL']; ?></td>
  10. <td><?php echo $array['LOCATIE_NAAM_PRINTER']; ?></td>
  11. <td>
  12. <input type="radio" name="INK_VK" value="+"> Inkoop<br />
  13. <input type="radio" name="INK_VK" value="-" checked>Verkoop<br />
  14. </td>
  15. <td>
  16. <input type="hidden" name="TONER_ID" value="<?php echo $array['TONER_ID']; ?>">
  17. <input type="submit" name="submit" value="wijzigen">
  18. </td>
  19. </form>
  20. <?php
  21. }




Ben nu meegegaan met jou idee.
zou zelf gaan voor een apart inkoop en verkoop formulier om selectie fouten te voorkomen.
en werkt het beste dmv AJAX denk ik (heb ik zelf niet genoeg kennis van!)

Offline Arphetic - 19/05/2010 20:44
Avatar van Arphetic Nieuw lid Maak om iedere input aparte form tags, lost je probleem op.
Offline Ray71 - 21/05/2010 00:08
Avatar van Ray71 Nieuw lid
Citaat:
Maak om iedere input aparte form tags, lost je probleem op.


Wanneer je mijn laatste voorbeeld had bekeken was het je duidelijk geweest dat dit op deze manier al het geval is !
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.188s