1 veld updaten
Ik 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..
------------------------------------------------------------
Nouja ik ga niet de hele tabel overtikken.. ;) maar je ziet hier dus 5 velden in totaal waarvan het veld AANT geupdate moet worden. Dus er word bijv als productgroep geselecteerd : Alcatel
Leverancier geselecteerd: Ascom
artID : omni
LocatieID: S14
Dan moet hij bij het aantal dat er al staat weer extra opgeteld worden.
Nu is het aantal 4. Maar als er ingeboektt word over moet hij het aantal dat ingevuld word opgeteld worden.. en niet een heel nieuwe rij aanmaken zoals hij nu doet dan krijg je dus 2 rijen met dezelfde gegevens en da's niet de bedoeling.. ;)
Ik hoop dat dit duidelijk is... en dit is ook mijn laatste probleem voor dit project voorlopig:)
Ik dank jullie hartelijk!:D
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$getal = 2;
mysql_query("UPDATE tabel
SET aant = aant + ".$getal) or die(mysql_error());
?>
$getal = 2;
mysql_query("UPDATE tabel
SET aant = aant + ".$getal) or die(mysql_error());
?>
Je moet er zelf een WHERE bij doen.
want nu update hij ze allemaal.
Gewijzigd op 01/01/1970 01:00:00 door Jelle -
Uhh jah maar er worden dmv. textboxen data verzonden... en ik zie in jou querie dattie nix controleert hoe doe ik dat precies met Where?
en ik weet toch niet waar jij op controleert (waar jij die getallen erbij wilt)
ik weet dus niet welke stappen jij allemaal wilt controleren.
maar op de bovenstaande manier, kan jij een getal bij het huidige waarde in de database zetten.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$aantal = is_numeric($_POST['aantal']) ? $_POST['aantal'] : 0;
$groep = mysql_real_escape_string($_POST['groep']);
$leverancier = mysql_real_escape_string($_POST['leverancier']);
$artid = is_numeric($_POST['artid']) ? $_POST['artid'] : 0;
$locid = is_numeric($_POST['locid']) ? $_POST['locid'] : 0;
$sql = "
UPDATE tabel
SET aant = aant + ".$aantal."
WHERE
Productgroep = '".$groep."'
AND
leveranc = '".$leverancier."'
AND
artID = ".$artid."
AND
locatieID = ".locid.";";
mysql_query($sql) or trigger_error(mysql_error());
?>
$aantal = is_numeric($_POST['aantal']) ? $_POST['aantal'] : 0;
$groep = mysql_real_escape_string($_POST['groep']);
$leverancier = mysql_real_escape_string($_POST['leverancier']);
$artid = is_numeric($_POST['artid']) ? $_POST['artid'] : 0;
$locid = is_numeric($_POST['locid']) ? $_POST['locid'] : 0;
$sql = "
UPDATE tabel
SET aant = aant + ".$aantal."
WHERE
Productgroep = '".$groep."'
AND
leveranc = '".$leverancier."'
AND
artID = ".$artid."
AND
locatieID = ".locid.";";
mysql_query($sql) or trigger_error(mysql_error());
?>
Edit
Tnx Jordy!
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
Quote:
SET aant = aantal + ".$aantal."
kleine aanpassing:
SET aant = aantal + ".$aantal."
moet zijn
SET aant = aant + ".$aantal."
Gewijzigd op 01/01/1970 01:00:00 door Jelle -
Tuurlijk kan dat, met PHP maak je een check (SELECT, tellen of de specifieke rij bestaat), zo ja updaten zo nee INSERTen...
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
[code]<?php
include("connect.php");
$warning = "";
if(!empty($_POST['product_groep'])&& !empty($_POST['locatie_code'])&& !empty($_POST['artikel_code'])&& !empty($_POST['aantal'])&& !empty($_POST['leverancier_code']))
{
$insert = "INSERT INTO voorraad(productgroep, leveranc, locatieID, artID, aantal) VALUES ('".$_POST['product_groep']."', '".$_POST['leverancier_code']."', '".$_POST['locatie_code']."', '".$_POST['artikel_code']."', '".$_POST['aantal']."')";
$result = mysql_query($q);
mysql_query($insert) or die (mysql_error());
$warning = "<font class='warning'>Het product is ingeboekt! </font>";
}
else
{
if(!empty($_POST))
{
$warning = "<font class='warning'>Fout! Niet alle velden waren ingevuld!</font>";
}
}
?>
<html>
<head>
<title>
MER Voorraadbeheer
</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="top">
</div>
<div id="coolmenu">
<center>
<b> MER Voorraadbeheer Administratiepaneel </b><br>
<a href="index.html"> Terug Naar Hoofdpagina </a>
</center>
</div>
<div id="middle">
<marquee> Boek hieronder het nieuwe product in! </marquee>
</div>
<div id="main">
<?=$warning ?>
<table>
<tr>
<td>
<form method="get" action="<?php echo($_SERVER["PHP_SELF"]); ?>">
Locatie: <input type="text" name="locatiecode" id="locatiecode">
Barcode: <input type="text" name="barcode" id="barcode">
<input type="submit" value="Controleer">
</form>
</td>
<?php
// hier is de locatiecode checker
if (!empty($_GET['locatiecode']))
{
$sqll = "SELECT * FROM locaties WHERE locaties = '" . $_GET['locatiecode']."';";
$resulta = mysql_query($sqll);
if (mysql_num_rows($resulta) == 1)
{
echo "<tr><td><p>".$_GET['locatiecode']."Locatiecode : bestaat</p></td></tr>";
}
else
{
echo "<tr><td><p>".$_GET['locatiecode']." Locatiecode : bestaat NIET</p></td></tr>";
}
}
?>
<?php
// hier is de barcode checker
if (!empty($_GET['barcode']))
{
$sqql = "SELECT * FROM artikelgegevens WHERE barcode = '" . $_GET['barcode']."';";
$resultaat = mysql_query($sqql);
if (mysql_num_rows($resultaat) == 1)
{
echo "<tr><td><p>".$_GET['barcode']." Barcode : bestaat</p></td></tr>";
}
else
{
echo "<tr><td><p>".$_GET['barcode']." Barcode : bestaat NIET</p></td></tr>";
}
}
?>
</tr>
</table>
?>
[code]<?php
include("connect.php");
$warning = "";
if(!empty($_POST['product_groep'])&& !empty($_POST['locatie_code'])&& !empty($_POST['artikel_code'])&& !empty($_POST['aantal'])&& !empty($_POST['leverancier_code']))
{
$insert = "INSERT INTO voorraad(productgroep, leveranc, locatieID, artID, aantal) VALUES ('".$_POST['product_groep']."', '".$_POST['leverancier_code']."', '".$_POST['locatie_code']."', '".$_POST['artikel_code']."', '".$_POST['aantal']."')";
$result = mysql_query($q);
mysql_query($insert) or die (mysql_error());
$warning = "<font class='warning'>Het product is ingeboekt! </font>";
}
else
{
if(!empty($_POST))
{
$warning = "<font class='warning'>Fout! Niet alle velden waren ingevuld!</font>";
}
}
?>
<html>
<head>
<title>
MER Voorraadbeheer
</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="top">
</div>
<div id="coolmenu">
<center>
<b> MER Voorraadbeheer Administratiepaneel </b><br>
<a href="index.html"> Terug Naar Hoofdpagina </a>
</center>
</div>
<div id="middle">
<marquee> Boek hieronder het nieuwe product in! </marquee>
</div>
<div id="main">
<?=$warning ?>
<table>
<tr>
<td>
<form method="get" action="<?php echo($_SERVER["PHP_SELF"]); ?>">
Locatie: <input type="text" name="locatiecode" id="locatiecode">
Barcode: <input type="text" name="barcode" id="barcode">
<input type="submit" value="Controleer">
</form>
</td>
<?php
// hier is de locatiecode checker
if (!empty($_GET['locatiecode']))
{
$sqll = "SELECT * FROM locaties WHERE locaties = '" . $_GET['locatiecode']."';";
$resulta = mysql_query($sqll);
if (mysql_num_rows($resulta) == 1)
{
echo "<tr><td><p>".$_GET['locatiecode']."Locatiecode : bestaat</p></td></tr>";
}
else
{
echo "<tr><td><p>".$_GET['locatiecode']." Locatiecode : bestaat NIET</p></td></tr>";
}
}
?>
<?php
// hier is de barcode checker
if (!empty($_GET['barcode']))
{
$sqql = "SELECT * FROM artikelgegevens WHERE barcode = '" . $_GET['barcode']."';";
$resultaat = mysql_query($sqql);
if (mysql_num_rows($resultaat) == 1)
{
echo "<tr><td><p>".$_GET['barcode']." Barcode : bestaat</p></td></tr>";
}
else
{
echo "<tr><td><p>".$_GET['barcode']." Barcode : bestaat NIET</p></td></tr>";
}
}
?>
</tr>
</table>
?>
HEeft iemand een idee ? :)
Helemaal niemand ? :(
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
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
<?php
$sql = "
SELECT
iets
FROM tabel
WHERE productgroep = '".$iets."',
AND productid = ".$eenid."
;";
$res = mysql_query($sql);
if(mysql_num_rows($res) > 0)
{
$sql2 = "
UPDATE tabel
SET aant = aant + 1
WHERE productgroep = '".$iets."',
AND productid = ".$eenid."
;";
}
else
{
$sql2 = "
INSERT INTO tabel (productgroep, productid, aant)
VALUES(
'".$iets."',
".$eenid.",1
);";
}
mysql_query($sql2);
?>
$sql = "
SELECT
iets
FROM tabel
WHERE productgroep = '".$iets."',
AND productid = ".$eenid."
;";
$res = mysql_query($sql);
if(mysql_num_rows($res) > 0)
{
$sql2 = "
UPDATE tabel
SET aant = aant + 1
WHERE productgroep = '".$iets."',
AND productid = ".$eenid."
;";
}
else
{
$sql2 = "
INSERT INTO tabel (productgroep, productid, aant)
VALUES(
'".$iets."',
".$eenid.",1
);";
}
mysql_query($sql2);
?>
Zoiets zou het dan worden...
Edit
Kleine leesverbetering in INSERT query
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
Nog even 2 vraagjes...
SET aant = aant + 1 << die 1 is toch het aantal dat er dan bijgeboekt word.. maar kan het ook zo zijn dat dit uit een veld word gehaald... Er word bijv. in een tekstbox 5 in gevuld dattie dan aant + 5 doet ipv. telkens aant + 1 ?? :)
Die .$iets. << waar moet ik die aan koppelen aan een tekstboxje of iets dergelijks?
Thnx!:)
Ik had geen zin om jouw script door te pluizen en alle vars perfect aan te houden, dus heb gewoon wat gedaan. En ja die 1 is wat er bij komt, en natuurlijk kan je dat aan een textvakje koppelen.
Formulier maken, inhouden controleren, updaten...
Sorriej was ff een niet zohelder moment van me.. :$ Komt door de sterke kruiden thee i gues.. :P
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
include("connect.php");
$warning = "";
if(!empty($_POST['product_groep'])&& !empty($_POST['locatie_code'])&& !empty($_POST['artikel_code'])&&
!empty($_POST['aantal'])&& !empty($_POST['leverancier_code']))
{
$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);
$warning = "<font class='warning'>Het product is ingeboekt! </font>";
}
else
{
if(!empty($_POST))
{
$warning = "<font class='warning'>Fout! Niet alle velden waren ingevuld!</font>";
}
}
?>
include("connect.php");
$warning = "";
if(!empty($_POST['product_groep'])&& !empty($_POST['locatie_code'])&& !empty($_POST['artikel_code'])&&
!empty($_POST['aantal'])&& !empty($_POST['leverancier_code']))
{
$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);
$warning = "<font class='warning'>Het product is ingeboekt! </font>";
}
else
{
if(!empty($_POST))
{
$warning = "<font class='warning'>Fout! Niet alle velden waren ingevuld!</font>";
}
}
?>
Okeej... Het rare is dat ik geen erorrs krijg.. maar er word ook niets in de database gezet... Maak ik ergens een fout.. de veldnamen kloppen... die heb ik net ff nagechecked.. ;)
Ook moet je even iets aan veiligheid gaan doen, want op deze manier kan je van alles in de database gooien wat er niet thuis hoort. Dus checken op nummers e.d.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
error_reporting(E_ALL)
include("connect.php");
$warning = "";
if(!empty($_POST['product_groep'])&& !empty($_POST['locatie_code'])&& !empty($_POST['artikel_code'])&& !empty($_POST['aantal'])&& !empty($_POST['leverancier_code']))
{
$sql = "
Line 5 is mijn include Connect... en daar lijkt me nix mis mee.. ? of verwijst ie em daarnaar toe omdat er iets anders misgaat?
error_reporting(E_ALL)
include("connect.php");
$warning = "";
if(!empty($_POST['product_groep'])&& !empty($_POST['locatie_code'])&& !empty($_POST['artikel_code'])&& !empty($_POST['aantal'])&& !empty($_POST['leverancier_code']))
{
$sql = "
Line 5 is mijn include Connect... en daar lijkt me nix mis mee.. ? of verwijst ie em daarnaar toe omdat er iets anders misgaat?
Ik denk dat je deze error zoekt ? :P
Sorriej.. maar ben nog gewoon een beetje een achterlijke php gehaktbal ... :P
Code (php)
1
2
3
4
5
2
3
4
5
SELECT
*
FROM voorraad
WHERE productgroep = '".$_GET['product_groep']."',
AND artID = ".$_GET['artikel_code']."
*
FROM voorraad
WHERE productgroep = '".$_GET['product_groep']."',
AND artID = ".$_GET['artikel_code']."
Is het veld productgroep een INT of een (VAR)CHAR. In het eerst geval moeten de ' er omheen weg.
Productgroep, artID zijn allebei varchars! En ik zie nu dat er bij artID geen quote's omheen staan zou het daardoodr komen ? :)