1 veld updaten
Pagina: « vorige 1 2 3 volgende »
om varchars moeten quote's :P
plaatsen die hap :-)
sowieso is CHAR sneller, maar gebruik gewoon INT, is nog sneller, en je weet zeker dat er geen gekke dingen in komen, omdat je dan een leuke fout krijgt zoals nu :P
in de artID staan geen integers maar productnamen... :) dus INT kan dan toch niet ? :)
Michel:
Productnamen? Ik had hier het id (nummer) verwacht van het id dat je gebruikt in de tabel 'producten'. Dat is namelijk een tabel die ik eveneens verwacht in je databasemodel.in de artID staan geen integers maar productnamen... :) dus INT kan dan toch niet ? :)
Maar eerlijk gezegd krijg ik een beetje het gevoel dat het hele databasemodel eens tegen het licht moet worden gehouden. Heb je wel aan normalisatie e.d. gedaan?
Edit: typo
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Als ik wist wat Normalisatie was... dan had ik het gedaan.. Op school gaan ze dat volgend schooljaar pas behandelen :\
ik heb ze nu ff een logischere naam gegeven
artikelvpr
en
locatievpr
vpr staat voor van product
Kan iemand me nu misschien proberen verder te helpen met de querie? Hij schrijft niets weg in de database en geeft een error aan zoals ik die in en paar postst terug had neergeschreven :) mvg. michel
Helemaal niemand meer :P?
Michel:
Als ik wist wat Normalisatie was... dan had ik het gedaan.. Op school gaan ze dat volgend schooljaar pas behandelen :
verwacht er maar niet teveel van op school
spreek uit ervaring.. :)
Gewijzigd op 01/01/1970 01:00:00 door Wout van der Burg
Kvind het alleen jammer datk nog zon beginner ben en het nog lastig vind om dingen zelf uit te vogelen enzow... :(
Quote:
k heb dus 1 tabel die de voorraad bijhoud. meer niet..
die ziet er als volgt uit
+++++++++++++++++++++++++++++++++
+ .Productgroep.|.leveranc.|.artID.|.locatieID.|aant
+++++++++++++++++++++++++++++++++
||..Alcatel..........|Ascom.....|Omni..|......S14...|...4..
------------------------------------------------------------
die ziet er als volgt uit
+++++++++++++++++++++++++++++++++
+ .Productgroep.|.leveranc.|.artID.|.locatieID.|aant
+++++++++++++++++++++++++++++++++
||..Alcatel..........|Ascom.....|Omni..|......S14...|...4..
------------------------------------------------------------
Quote:
volgens mij is mijn database dat nu wel aardig
Het feit dat jij de naam van de productgroep en de naam van de leverancier opslaat in deze tabel, geeft al aan dat het alles behalve een aardig datamodel is. Ascom is namelijk wat anders dan Asscom of ascomm. Dit soort fouten zijn zo gemaakt, maar mogen gewoon niet voor kunnen komen. Leg gewoon een verband met de tabel 'leveranciers' door het id van de leverancier in de tabel 'voorraad op te slaan'. Al is ook dit discutabel. Wat heeft een leverancier met de voorraad te maken? Een leveranvier hoort bij een bepaalt product (gelijke producten van verschillende leveranciers zullen verschillende productnummers hebben). Het is dus niet nodig om deze informatie nogmaals op te slaan in de tabel 'voorraad'. Dit geldt ook voor de productgroep. Dit is wederom een eigenschap van het product, niet van de voorraad.
Verder hoop ik dat je er rekening mee houdt, dat een voorraad op meerdere locaties kan liggen.
Maar het belangrijkste is dat je gaat normaliseren. Dat is niet iets dat je zo even onder de knie krijgt, daarvoor moet je echt de handen uit de mouwen steken. Daar zullen heel wat uurtjes in gaan zitten, wil je daar een beetje handigheid in krijgen.
Tip: Zodra je informatie dubbel opslaat, weet je voor 95% zeker dat je fout bezig bent. Een naam die 2x voorkomt, vrijwel altijd fout. Een belangrijke uitzondering zijn facturen. Een prijs kan wijzigen, maar een prijs die op een factuur staat, kan niet meer wijzigen, het artikel is al verkocht en de deur uit. Die zul je dus apart moeten opslaan. Dit geldt overigens voor meerdere gegevens die je op facturen zet. Inclusief het btw%, dat kan ook wijzigen.
Er zit namelijk een controleer knop in die checkt of de naam ascom daadwerkelijk bestaat... zoja.. vul de textbox in die READONLY is.. dus die is al niet aan te passen... en hij verstuurd dan data vanuit die textboxen :) Dat leek mij wel een aardig goed systeem :)
Redundantie (dubbele data toch?) komt niet voor... want ik ben nu dus met het controle systeem bezig dat
Als
Productnaam
Staat op
locatie2
En
Heeft
Leverancier3
Dan
Updaten
Anders
Nieuw product toevoegen
Ik hoop dat je een beetje snap hoe het systeem in elkaar steekt :) anders wil ik wel ff wat screenies maken en die hier posten dan weet je wat ik bedoel!:)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
$sql = "
SELECT
*
FROM voorraad
WHERE productgroep = '".$_GET['product_groep']."',
AND artID = '".$_GET['artikel_code']."'
;";
$res = mysql_query($sql);
if(mysql_num_rows($res) > 0)
{
// hier word het product geupdate als het bestaat
$sql2 = "
UPDATE voorraad
SET aant = aantal + '".$_GET['aantal']."'
WHERE productgroep = '".$_GET['product_groep']."',
AND artID = '".$_GET['artikel_code']."'
;";
}
else
{
// Hier word het product ingeboekt als het nog niet bestaat!
$sql2 = "
INSERT INTO voorraad (productgroep, artID, aantal, leveranc, locatieID)
VALUES(
'".$_GET['product_groep']."',
".$_GET['artikel_code'].",".$_GET['aantal'].",".$_GET['leverancier_code'].",".$_GET['locatie_code']."
);";
}
mysql_query($sql2);
?>
$sql = "
SELECT
*
FROM voorraad
WHERE productgroep = '".$_GET['product_groep']."',
AND artID = '".$_GET['artikel_code']."'
;";
$res = mysql_query($sql);
if(mysql_num_rows($res) > 0)
{
// hier word het product geupdate als het bestaat
$sql2 = "
UPDATE voorraad
SET aant = aantal + '".$_GET['aantal']."'
WHERE productgroep = '".$_GET['product_groep']."',
AND artID = '".$_GET['artikel_code']."'
;";
}
else
{
// Hier word het product ingeboekt als het nog niet bestaat!
$sql2 = "
INSERT INTO voorraad (productgroep, artID, aantal, leveranc, locatieID)
VALUES(
'".$_GET['product_groep']."',
".$_GET['artikel_code'].",".$_GET['aantal'].",".$_GET['leverancier_code'].",".$_GET['locatie_code']."
);";
}
mysql_query($sql2);
?>
echo je $sql en je $sql2 eens
Notice: Undefined variable: sql2 in C:\Program Files\xampp\htdocs\mervoorraad\mbinboeken2.php on line 98
Zegt dat iets? want er lijkt me eigenlijk niets mis met de query... :(
hij komt niet eens op het punt waar de code van hierboven staat.
En mijn project deadline is morgen.. en dit is in feite de laatste functie die af moet... dusik hoop dat iemand mij nog kan helpen!!!:)
echo 'SQL1: '.$sql.'<br>SQL2: '.$sql2;
SQL1:
SQL2:
vind ik erg knap, aangezien dat betekend dat wat jij hierboven hebt staan gewoon er eigenlijk niet staat.