Avatar billede donandres Nybegynder
19. juli 2005 - 13:02 Der er 10 kommentarer og
1 løsning

hjælp til sgl kode

hej eksperter

jeg har pillet lidt med en kode til en dvd udlåns liste, som jeg fandt her på eksperten..

men når jeg kører formlen får jeg denne fejl:

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 ' '')' at line 1

jeg ved ikke hvad og hvor det er jeg skal rette...

min kode:
<?
    if ($_POST[submit]) {
        $conn = mysql_connect("SERVER","BRUGER","PASS");
        $db = mysql_select_db("DATABASE");
        $sql = "INSERT INTO dvdudlaan (navn, film, filmnr, dato) VALUES ('$_POST[navn]', '$_POST[film]', $_POST[filmnr], '$_POST[dato]')";   
        mysql_query($sql) or die(mysql_error());
    }

    if ($_POST[slet]) {
        $conn = mysql_connect("SERVER","BRUGER","PASS");
        $db = mysql_select_db("DATABASE");
        $sql = "DELETE FROM dvdudlaan WHERE filmnr = $_POST[filmnr]";
        mysql_query($sql) or die(mysql_error());
    }       
?>   

<html>
<head>
<title>Udlån af film</title>
</head>
<body>

<p>Udlån af DVD'er</p>

<p>Indsæt nyt udlån:</p>

<form action="udlaan.php" method="post">
<table>
<tr> <td> Navn: </td> <td> <input type="text" name="navn"> </td> </tr>
<tr> <td> Film: </td> <td> <input type="text" name="film"> </td> </tr>
<tr> <td> Filmnr: </td> <td> <input type="text" name="filmnr"> </td> </tr>
<tr> <td> Dato for udlån: </td> <td> <input type="text" name="dato"> </td> </tr>
<tr> <td colspan="2"> <input type="submit" name="submit" value="Sådan!"> </td> </tr>
</table>
</form>

Udlånte film:

<?
    $conn = mysql_connect("SERVER","BRUGER","PASS");
    $db = mysql_select_db("DATABASE");
    $sql = "SELECT * FROM dvdudlaan";
    $query = mysql_query($sql);


        while($data = mysql_fetch_array($query)) {
        print "<p>";
        print "<form action=\"udlaan.php\" method=\"post\">";
        print "<input type=\"hidden\" name=\"filmnr\" value=\"$data[filmnr]\">";
        print "Filmen $data[film] med nummer $data[filmnr] blev d. $data[dato] udlånt til $data[navn] &nbsp; <input type=\"submit\" name=\"slet\" value=\"Slet\">";
        print "</form>";
        print "</p>";
        }
?>

og sql koden:
CREATE TABLE `dvdudlaan` (
  `navn` char(50) NOT NULL default '',
  `film` char(50) NOT NULL default '',
  `filmnr` int(3) NOT NULL default '0',
  `dato` char(10) NOT NULL default '',
  PRIMARY KEY  (`filmnr`),
  UNIQUE KEY `filmnr` (`filmnr`)
) TYPE=MyISAM;


PS. hvis I kunne hjælpe med at lave det sådan at jeg kun skal skrive $conn og £db  1 gang, ville det være rigtig rart. har glemt hvad det hedder når man laver sådan nogle.. er det arrays?
Avatar billede fennec Nybegynder
19. juli 2005 - 15:03 #1
Prøv at udskrive alle dine SQL-sætninger, inden du bruger dem. Der skal bare en echo før alle "mysql_query($sql) or die(mysql_error());".

Hvis du flytte:
$conn = mysql_connect("SERVER","BRUGER","PASS");
$db = mysql_select_db("DATABASE");

op før din første if (if ($_POST[submit]) {), så burde du kunne slette alle senere forkomster af de 2 linjer.
Avatar billede donandres Nybegynder
19. juli 2005 - 15:57 #2
mange tak. jeg vender tilbage lidt senere når jeg har prøvet det. har ikk lige tid nu
Avatar billede donandres Nybegynder
19. juli 2005 - 17:18 #3
det hjalp desværre ikke...
Avatar billede donandres Nybegynder
19. juli 2005 - 17:19 #4
prøv at rediger koden for mig, jeg er ikke sikker på at jeg forstår det...
Avatar billede fennec Nybegynder
20. juli 2005 - 08:12 #5
Fik du ikke skrevet en sql-sætning ud på skærmen?? Det er nemmere at finde fejlen hvis du har den "samlet" udgave.

Den eneste fejl jeg lige kan komme på det kan være, er hvis en af dine variabler indeholder ' tegnet.
Avatar billede Slettet bruger
20. juli 2005 - 08:14 #6
$sql = "INSERT INTO dvdudlaan (navn, film, filmnr, dato) VALUES ('". $_POST['navn'] ."', '". $_POST['film'] ."', '". $_POST['filmnr'] ."', '". $_POST['dato'] ."')";

Prøv at ordne dine queries sådan der.
Avatar billede Slettet bruger
20. juli 2005 - 08:16 #7
eller måske endda:

$sql = "INSERT INTO dvdudlaan (navn, film, filmnr, dato) VALUES ('". addslashes($_POST['navn']) ."', '". addslashes($_POST['film']) ."', '". addslashes($_POST['filmnr']) ."', '". addslashes($_POST['dato']) ."')";
Avatar billede donandres Nybegynder
20. juli 2005 - 10:02 #8
jamen hvor skal det ind og istedet for hvad? jeg fatter minus lige nu
Avatar billede Slettet bruger
20. juli 2005 - 11:25 #9
I stedet for:

$sql = "INSERT INTO dvdudlaan (navn, film, filmnr, dato) VALUES ('$_POST[navn]', '$_POST[film]', $_POST[filmnr], '$_POST[dato]')";
Avatar billede donandres Nybegynder
20. juli 2005 - 20:33 #10
så sker der ikke noget når jeg prøver at submitte
Avatar billede donandres Nybegynder
28. juli 2005 - 18:00 #11
øv.. lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester