Hej
Jeg har et lille problem med noget MySQL og PHP.
Jeg er igang med et lille program som jeg planlægger at lægge ud på min hjemmeside.
Problemet er så at brugerne skal kunne oprette en bruger men når jeg prøver at få sat dataene ind i min database opstår der en fejl og den udskriver følgende:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select) VALUES ('43', '67','cbf','d926d7bb9ccf46fc04a61bd65d87b9b3','ugepenge','' at line 1
Her er koden:
<html>
<head>
<title> Lommepenge </title>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<div id = "box">
<p> Hej og velkommen til ugepengeprogrammet, der gør det muligt at holde styr på dine ugepenge, uden at skulle tælle dem hvergang</p>
<div id = "innerbox">
<p><b>Bemærk</b> udfyld kun felterne en gang </p>
<p> Får du ugepenge eller månedspenge?</p>
<form method = "post" action = "test.php">
<select size= 1 name = "ugelomme">
<option>
ugepenge
</option>
<option>
månedspenge
</option>
</select>
<p> Brugernavn </p>
<input type = "text" name = "brugernavn">
<p> Password </p>
<input type = "password" name = "password">
<p> Hvad for en dag på måneden/ugen får du ugepenge? </p>
<input type = "text" name = "select">
<p> Hvor mange penge får du i ugepenge? </p>
<input type = "text" name = "ugepenge" >
<p> Hvor mange penge har du allerede?? </p>
<input type = "text" name = "penge">
<input type="submit" value="send">
<p> Ved oprettelse af bruger acceptere du følgende betingelser </p>
<a href = "betingelser.html">betingelser</a>
<p> <b>Bemærk venligst</b> at uge/månedsløn bliver medregnet i slutningen af ugen/måneden </p>
<?php
// opretter forbindelse
mysql_connect("localhost", "gustav", "jd29wydm") or die(mysql_error());
// vælger database
mysql_select_db("gustavidunsloth_dk") or die(mysql_error());
// definition af variabler
$brugernavn = $_POST["brugernavn"];
$password = $_POST["password"];
$penge = $_POST["penge"];
// uge penge holder styr på hvor mange uge penge
$ugepenge = $_POST["ugepenge"];
// ugelomme checker hvis man bruger måned eller ugepenge
$ugelomme = $_POST["ugelomme"];
$pengedato = $_POST["datoforpenge"];
$pengedatotaeller = 0;
$select = $_POST["select"]; // select er den variabel der ineholder informationer
//holder styr på alle fejlene
$error = 0;
if($brugernavn == "") {
echo "Du skal indtaste et brugernavn. ";
$error = 1;
}
if ($password == "") {
echo "Husk lige dit password. ";
$error = 1;
}
if ($penge == "") {
echo "Venligst indtast dine penge. ";
$error = 1;
}
if ($ugepenge == "") {
echo "Indtast venligst dine ugepenge. ";
$error = 1;
}
if ($ugelomme == ugepenge && $select > 7) {
echo " Et af de angivne tal var for højt ";
$error = 1;
}
if ($ugelomme == månedspenge && $select > 31) {
echo " Et af de angivne tal var for højt ";
$error = 1;
}
if ($error == 0){
$password = MD5($password);
echo "du er nu blevet registreret";
mysql_query("INSERT INTO ugepenge (ugepenge,penge,brugernavn,password,ugelomme,select) VALUES ('$ugepenge', '$penge','$brugernavn','$password','$ugelomme','$select')") OR DIE(mysql_error());
}
// koden kan godt virke lidt overskuelig
?>
<p> Når du har indtastet informationerne og trykket send kan du gå til kontrolpanelet <a href ="login.php">her</a> </p>
</div> // link manglrer
</div>
</form>
</body>
</html>
jeg er sikker på at koden her kan virke lidt overskuelig men jeg har prøvet at give den kommentarer så godt jeg nu kan.
jeg mener at problemet er opstået her:
mysql_query("INSERT INTO ugepenge (ugepenge,penge,brugernavn,password,ugelomme,select) VALUES ('$ugepenge', '$penge','$brugernavn','$password','$ugelomme','$select')") OR DIE(mysql_error());
For hvis jeg fjerner select og $select fra koden virker det helt fint.
Jeg er ikke helt sikker på det med point så det kunne være rart hvis nogen ville give mig en lille introduktion i det.
P.S jeg har fået hjælp fra artiklen Fra Begynder Til Login