Beste PHP-ers,

ben al uern aan het klooien met een code om wat in een SQL database tekrijgen, maar ik krijg het niet voor elkaar. Ik zit er al uren naar te staren en ik zie het niet meer, het is onwaarschijnlijk wat l*lligs...
Ik hoop hier op een beetje PHP-hulp :-)

ik heb het volgende;

<?php

include "connect.php";

// een stukje verder...

$insert_sql = "INSERT INTO artikelen (merk, omschrijving, leverancier, artikelnr_leverancier, VAP_ex_BTW, marge, voorraad, minimale_voorraad)
VALUES
('$smerk','$somschrijving','$sleverancier','$sartikelnr_leverancier','$bedrag','$smarge','$nieuwe_voorraad')";

mysql_query($insert_sql);

?>

als ik een echo $insert_sql; geef krijg ik bijvoorbeeld dit;
INSERT INTO artikelen (merk, omschrijving, leverancier, artikelnr_leverancier, VAP_ex_BTW, marge, voorraad, minimale_voorraad) VALUES ('Venz','Hagelslag','De Ruijter','pak012','0.00','0','0')

dit is de tabel waar die ge-insert wordt;

artikelnr int(8) Primair auto_increment
merk varchar(20)
omschrijving varchar(50)
leverancier varchar(20)
artikelnr_leverancier varchar(20)
VAP_ex_BTW decimal(8,2)
marge int(3)
voorraad int(8)
minimale_voorraad int(8)

wie kan me even het spreekwoordelijke zetje in de rug geven?
Foutafhandeling ontbreekt.
$Vars buiten de quotes houden.
Verder geef je 8 velden en 7 waardes op.
Schrijf je query's netjes uit! Dan had je deze zo gezien:
<?php
include "connect.php";
// een stukje verder...
$insert_sql = "
INSERT INTO artikelen
(
merk,
omschrijving,
leverancier,
artikelnr_leverancier,
VAP_ex_BTW,
marge,
voorraad,
minimale_voorraad
)
VALUES
(
'$smerk',
'$somschrijving',
'$sleverancier',
'$sartikelnr_leverancier',
'$bedrag',
'$smarge',
'$nieuwe_voorraad'
)";

mysql_query($insert_sql);
?>
Het aantal kolomnamen is anders dan het aantal waarden dat je probeert in te voeren.
Ja stom, inderdaad nu zie ik het ook... ik was de minimale_voorraad vergeten bij de variabelen.

Wellicht had ik het met een foutafhandeling ook gevonden...
Echter wat bedoel je met $Vars buiten de quotes houden?

En Jan inderdaad, zal m'n query's voortaan netjes uitschrijven!
Is inderdaad veel overzichtelijker, was in de veronderstelling dat de SQL opdracht niet "begrepen" zou worden met tabs en enters er in, maar voortaan maak ik ze zo!

Iedergeval bedankt voor de tips en de snelle reacties, ik ga er mee aan de slag!
Verder horen variabelen buiten quotes en ontbreekt beveiliging en foutafhandeling. Het script is dus nog lang niet af en het is dus vrij logisch dat er van alles fout gaat.
Voorbeeldje met beveiliging en foutafhandeling:
<?php
include "connect.php";
// een stukje verder...
$insert_sql = "
INSERT INTO artikelen
(
merk,
omschrijving,
leverancier,
artikelnr_leverancier,
VAP_ex_BTW,
marge,
voorraad,
minimale_voorraad
)
VALUES
(
'" . mysql_real_escape_string ($merk) . "',
'" . mysql_real_escape_string ($omschrijving) . "',
'" . mysql_real_escape_string ($leverancier) . "',
'" . mysql_real_escape_string ($artikelnr_leverancier) . "',
'" . mysql_real_escape_string ($VAP_ex_BTW) . "',
'" . mysql_real_escape_string ($marge) . "',
'" . mysql_real_escape_string ($voorraad) . "',
'" . mysql_real_escape_string ($minimale_voorraad) . "'
)
";

if (!mysql_query($insert_sql)) {
// error
}
?>

Reageren