hallo ik ben net begonnen met php ik probeer data weg te sturen naar een sql-database dit lukt me helaas niet.
Hieronder is de code te vinden.

<?php

include "connect.php";

if ($_POST['submit'] && $_POST['voornaam'] && $_POST['achternaam'] && $_POST['inlognaam'])
{
$datum = date('d.m.Y H:i');


$sql = "INSERT INTO Gebruikers (voornaam, achternaam, inlognaam)";

echo "toegevoegd";

}
?>


<html>
<head>
</head>
<body>
<H2> Een werknemer toevoegen</H2>
<form method="post" action="gebruikertoevoegen.php">
<TABLE BORDER="0" CELLPADDING="2">
<TR>
<TD>Voornaam:</TD>
<TD><input type="text" STYLE="background-color: #72A4D2" name="voornaam" size"30"></TD>
</TR><TR>
<TD>Achternaam:</TD>
<TD><input type="text" STYLE="background-color: #72A4D2" name="achternaam" size"30"></TD>
</TR><TR>
<TD>Inlognaam:</TD>
<TD><input type="text" STYLE="background-color: #72A4D2" name="inlognaam" size"30"></TD>
</TR>
</TABLE>
<input type="submit" value="Verzenden">
<Input type="reset" &nbsp value="Reset">
</form>
</body>
</html>
Wat krijg je voor fout?
$sql = "INSERT INTO Gebruikers (voornaam, achternaam, inlognaam)";

Maak daar eens van:

$sql= "INSERT INTO Gebruikers (voornaam, achternaam, inlognaam) VALUES ('".$naam."', '".$achternaam."', '".$inlognaam."')";

Uiteraard eerst aanpassen naar wens.
probeer ook de $_POST variabelen een normaal variabel naam te geven, anders krijg je gezeur met registerglobals volgens mij.

bijv.
$naam = $_POST['naam'];
lukt me nog neit misschien ligt het aan mij maar ik krijg gewoon een lege pagina te zien verder wordt er ook niks in de database weggeschreven, dankje voor de snele reacties
<?php

include "connect.php";

if ($_POST['submit'] && $_POST['voornaam'] && $_POST['achternaam'] && $_POST['inlognaam'])
{
$datum = date('d.m.Y H:i');


$sql= "INSERT INTO Gebruikers (voornaam, achternaam, inlognaam) VALUES ('".$naam."', '".$achternaam."', '".$inlognaam."')";

echo "toegevoegd";

}
?>
dit is nu de php code hieronder heb ik ook maar de sql code

CREATE TABLE `gebruikers` (
`ID` int(10) unsigned NOT NULL auto_increment,
`Voornaam` varchar(20) NOT NULL default '',
`Achternaam` varchar(20) NOT NULL default '',
`Inlognaam` varchar(20) NOT NULL default '',
PRIMARY KEY (`ID`),
FULLTEXT KEY `Voornaam` (`Voornaam`,`Achternaam`,`Inlognaam`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
In uw sql staat gebruikers met een kleine g.

In uw php staat een hoofdletter.

Dat kan sowiezo al niet werken.
heb het dankje voor de hulp phpscript staat hieronder als je nog opmerking hebt over dit script bijvoorbeeld nettere regels ofzo wil je het dan aangeven.

alvast bedankt,

sander

<?php

include "connect.php";

$sql="INSERT INTO gebruikers (voornaam, achternaam, inlognaam)";
$sql .= "VALUES ('"; $sql .=$_POST["voornaam"] ."', '"; $sql .=$_POST["achternaam"] ."', '"; $sql .=$_POST["inlognaam"] ."');";
$res = mysql_query($sql);

echo ("gelukt")


?>
1) Nooit rechstreeks POST variabelen in je insert query stoppen
2) Error checking gebruiken.
Ik heb je code wat opgeschoond:

<?php
error_checking(E_ALL);
require_once('connect.php');

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$voornaam = htmlspecialchars($_POST['voornaam']);
$achternaam = htmlspecialchars($_POST['achternaam']);
$inlognaam = htmlspecialchars($_POST['inlognaam']);

$sql = "
INSERT INTO gebruikers
(voornaam, achternaam, inlognaam)
VALUES ('" . $voornaam . "', '" . $achternaam . "', '" . $inlognaam . "')";

mysql_query($sql) or trigger_error(mysql_error());
}
?>

Reageren