Insert of update, gebeurt niks
Wat ik wil bereiken is dat er gekeken moet worden of er al een item in de database zit. Zo niet dan moet hij dit item toevoegen, zo wel dan moet hij het aantal updaten.
Als ik mijn variabelen echo zijn die niet leeg en kloppen ze gewoon.
De database is nu leeg, er wordt niks ingezet.
Mijn database heeft de tabel "items" met primary key itemnaam en itemaantal.
Mijn code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
//gegevens in items zetten
$r = mysql_query('SELECT itemnaam, itemaantal FROM items WHERE itemnaam = item1');
if(!$r) {
mysql_query('INSERT INTO items (`itemnaam`, `itemaantal`) ("'.$item1.'","'.$item1aantal.'")');
}else
{
$uitvoer = mysql_query($r) or die(mysql_error());
$row = mysql_fetch_assoc($uitvoer);
$item1aantal = $row['itemaantal'] + $item1aantal;
mysql_query('UPDATE items SET itemaantal=$item1aantal WHERE itemnaam=$item1');
}
$r = mysql_query('SELECT itemnaam, itemaantal FROM items WHERE itemnaam = item1');
if(!$r) {
mysql_query('INSERT INTO items (`itemnaam`, `itemaantal`) ("'.$item1.'","'.$item1aantal.'")');
}else
{
$uitvoer = mysql_query($r) or die(mysql_error());
$row = mysql_fetch_assoc($uitvoer);
$item1aantal = $row['itemaantal'] + $item1aantal;
mysql_query('UPDATE items SET itemaantal=$item1aantal WHERE itemnaam=$item1');
}
Gewijzigd op 27/10/2010 14:43:13 door Stefan Bergers
Gewijzigd op 27/10/2010 15:08:39 door - Dave -
- sloop je bactics eens uit je sql dat is nergens voor nodig.
- die is geen mooie fout afhandeling.
- Je haalt niet overal je vars buiten je quotes.
- SQL injection waarschijnlijk mogelijk.
- berekeningen laten we de database doen niet van te voren in php.
- bouw eens foutafhandeling in zodat je ook kunt zien wat er gebeurt. Dat kun je nu dus niet.
Kijk eens op http://www.phptuts.nl/view/41/
Gewijzigd op 27/10/2010 14:39:35 door - Mark -
Alle drie de query's in het script zijn onjuist.
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
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
<?php
# Gegevens selecteren
$qry = "";
# Query uitvoeren
if( $sql = mysql_query( $qry ) )
{
# Als er items zijn
if( mysql_num_rows( $sql ) > 0 )
{
# UPDATE Query
$aQry = "";
}
else
{
# INSERT Query
$aQry = "";
}
# Update / Insert query uitvoeren
if( mysql_query( $aQry ) )
{
# Succesvol afgerond
echo 'Uw actie is succesvol afgerond.';
}
else
{
# Fout in de query
echo 'Er is een fout met de update / insert query opgetreden.';
}
}
else
{
# Fout in de query
echo 'Er is een fout met de query opgetreden.';
}
?>
# Gegevens selecteren
$qry = "";
# Query uitvoeren
if( $sql = mysql_query( $qry ) )
{
# Als er items zijn
if( mysql_num_rows( $sql ) > 0 )
{
# UPDATE Query
$aQry = "";
}
else
{
# INSERT Query
$aQry = "";
}
# Update / Insert query uitvoeren
if( mysql_query( $aQry ) )
{
# Succesvol afgerond
echo 'Uw actie is succesvol afgerond.';
}
else
{
# Fout in de query
echo 'Er is een fout met de update / insert query opgetreden.';
}
}
else
{
# Fout in de query
echo 'Er is een fout met de query opgetreden.';
}
?>
Als je deze opbouw aanhoud moet het goed komen... Aan jou om de query's goed te maken en te beveiligen tegen sql-injection.
Gewijzigd op 27/10/2010 16:54:42 door Milo S