Voorraad UPDATE met -1

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roberto Beer

Roberto Beer

12/01/2008 14:53:00
Quote Anchor link
Beste mensen,

Een hele domme vraag.

Ik heb deze query:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$subquery
= "UPDATE boeken SET voorraad = '{$uitvoer['aantal']}' WHERE id = '{$uitvoer['boeken_id']}';";

?>


Wat ik wil is niet dit: SET voorraad = '{$uitvoer['aantal']}'

Maar iets als SET voorraad -= '{$uitvoer['aantal']}'

Hij moet de bestaande waarde nemen die in het veld voorraad staat, en daar $uitvoer['aantal'] vanaf trekken. Ik heb gegoogled, maar ik kon het niet vinden. Ik weet wel dat het bestaat.

Kan iemand me helpen?

Groeten,

Robbert
 
PHP hulp

PHP hulp

16/05/2024 17:45:56
 
Jurgen assaasas

Jurgen assaasas

12/01/2008 14:55:00
Quote Anchor link
gewoon:

SET veld = veld - 1
 
Jan Koehoorn

Jan Koehoorn

12/01/2008 15:05:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
    $subquery
= "
        UPDATE boeken
        SET voorraad =  voorraad - "
. $uitvoer['aantal'] . "
        WHERE id = "
. $uitvoer['boeken_id'];
?>
 
Roberto Beer

Roberto Beer

12/01/2008 15:14:00
Quote Anchor link
Jongens, bedankt :)
 
Frank -

Frank -

12/01/2008 16:30:00
Quote Anchor link
Voorraad is een berekend geheel, dat sla je in principe niet op in de database, dat bereken je op het moment dat je het nodig hebt.

Mocht je tóch de voorraad bijhouden, om de database te versnellen, dan ga je dit met een trigger doen. Op het moment dat je een product verkoopt, dus een nieuw bestelrecord in de database, zal de trigger automatisch de voorraad bijwerken. Op het moment dat je artikelen ontvangt, zal een andere trigger ook weer de voorraad bijwerken. Met triggers kun je dit veilig doen, met jouw huidige aanpak kan er teveel fout gaan.

Desondanks, maak eerst een opzet zonder de voorraad bij te houden, bereken deze op het moment dat je hem nodig hebt. Daar leer je het meeste van en het is eenvoudig aan te passen mocht je meer snelheid nodig hebben. Triggers doen wonderen. Zie de handleiding van jouw database.
 
Jurgen assaasas

Jurgen assaasas

12/01/2008 16:36:00
Quote Anchor link
@pgFrank, Waarom zou je de voorraad niet bijhouden? Je moet toch weten hoeveel je hebt?
 
Jan Koehoorn

Jan Koehoorn

12/01/2008 16:42:00
Quote Anchor link
Dat kun je uitrekenen, dus dat hoef je niet bij te houden.
Vergelijk het met een leeftijd, die hoef je ook niet op te slaan. Je hoeft alleen een geboortedatum te weten.
 
Frank -

Frank -

12/01/2008 16:50:00
Quote Anchor link
Jurgen schreef op 12.01.2008 16:36:
@pgFrank, Waarom zou je de voorraad niet bijhouden? Je moet toch weten hoeveel je hebt?
Zie het verschil tussen de ontvangen goederen en de verzonden goederen.

Dit heeft ook als voordeel dat wanneer een product wordt teruggezonden, deze gewoon weer in de voorraad wordt opgenomen. Tenzij het kapot is, dan zul jet het moeten afschrijven. Ook dat is een normale procedure.

Met losse update-queries de voorraad bijhouden, gaat altijd fout, er kan op teveel plaatsen iets fout gaan. Ga het dus berekenen op het moment dat je het nodig hebt, of laat een trigger de boel berekenen en de uitkomst opslaan op het moment dat er elders iets veranderd. Maar in beide gevallen wordt er een momentopname gemaakt van de huidige stand van zaken. Wanneer deze berekening goed is, klopt de uitkomst altijd.
 
Roberto Beer

Roberto Beer

16/01/2008 17:16:00
Quote Anchor link
Gelukkig heb ik het idee van voorraden geschrapt.

Het is namelijk een webwinkel die 2e hands boeken verkoopt. Dat wil zeggen dat elk boek uniek is, omdat een 2e hands boek mankementjes heeft die vermeld moeten worden.

Ik heb nu voor elk boek een status van 'te koop' of anders 'besteld', 'verzonden' of 'betaald'.

Dit werkt wel goed. In ieder geval, wel voor 2e hands boeken.

Ik wil jullie bedanken voor de hulp. Weten jullie misschien of het principe van...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

SET voorraad =  voorraad - " . $uitvoer['aantal'] . "

?>


ook geldt voor tekst?

Ik heb bijvoorbeeld een veld bijzonderheden en daar wil ik graag een logboekje van bijhouden, die tekst achter het al bestaande tekst voegt.


Groeten,
Robbert
 
Roberto Beer

Roberto Beer

16/01/2008 17:24:00
Quote Anchor link
Of is het misschien beter om dit logboekje in een txt-bestand bij te houden?

Tja, ik weet het niet hoor.

Iemand goede raad?
 



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.