Avatar billede fixbabe Nybegynder
28. januar 2006 - 20:00 Der er 21 kommentarer og
1 løsning

hvad er fejlen?

Jeg har dette script:

if (isset($_POST['addbook'])) {
    $sql = 'UPDATE plads SET
        "'.$_POST["plads"].'"=1
      WHERE id="'.$_POST["id"].'"';
    mysql_query($sql) or die("Kunne ikke udfører kommandoen : " . mysql_error());;
    print('<script type="text/javascript">window.location="site.php"</script>');
}

Jeg får følgende fejl:

Kunne ikke udfører kommandoen : 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 '"2"=1 WHERE id="1"' at line 2
Avatar billede jaw Nybegynder
28. januar 2006 - 20:03 #1
$sql = 'UPDATE plads SET "'.$_POST["plads"].'"=1 <- hedder feltet "2"? Syntaxen er:
UPDATE tabel SET feltnavn = værdi
Avatar billede fixbabe Nybegynder
28. januar 2006 - 20:05 #2
værdien er 1 <-værdig for "optaget"
"'.$_POST["plads"].'" er den plads folk booker
Avatar billede jaw Nybegynder
28. januar 2006 - 20:07 #3
Ja, men der hvor du har $_POST['plads'] skal være navnet på det felt du vil opdatere.
Avatar billede fixbabe Nybegynder
28. januar 2006 - 20:09 #4
ja, kommer fra form input
Avatar billede jaw Nybegynder
28. januar 2006 - 20:11 #5
Og det er feltet i din tabel der hedder 2? Prøv lige at fjerne "." omkring.
Avatar billede fixbabe Nybegynder
28. januar 2006 - 20:14 #6
ja det er det felt der hedder 2, har fjernet " men hjalp ikke.
Avatar billede opiman Nybegynder
28. januar 2006 - 20:16 #7
Skal feltet 'id' indeholde et tal, så husk at fjerne double-quotes.

Altså:

$sql = 'UPDATE plads SET "'.$_POST["plads"].'"=1 WHERE id="'.$_POST["id"].'"';

Skal være:

$sql = 'UPDATE plads SET "'.$_POST["plads"].'"=1 WHERE id='.$_POST["id"].';

Men kun hvis id er et tal...
Avatar billede jaw Nybegynder
28. januar 2006 - 20:18 #8
Prøv:

UPDATE `plads` SET `'.$_POST["plads"]."` = 1 WHERE

Og læg mærke til mine ` som jeg ikke ved hvad hedder.
Avatar billede fixbabe Nybegynder
28. januar 2006 - 20:24 #9
opiman:

<?php
include "inc_top.php";
if (isset($_POST['addbook'])) {
    $sql = 'UPDATE plads SET "'.$_POST["plads"].'"=1 WHERE id='.$_POST["id"].';
    mysql_query($sql) or die("Kunne ikke udfører kommandoen : " . mysql_error());
    print('<script type="text/javascript">window.location="site.php"</script>');
}
?>

Jeg får denne fejl:

Parse error: parse error, unexpected T_STRING in /home/site/book.php on line 6
Avatar billede jaw Nybegynder
28. januar 2006 - 20:26 #10
Der er en ' for meget i den:
$sql = 'UPDATE plads SET "'.$_POST["plads"].'"=1 WHERE id='.$_POST["id"];
Avatar billede fixbabe Nybegynder
28. januar 2006 - 20:44 #11
Det hjalp ikke, det giver stadig ikke nogen mening at den melder fejl jeg kan ikke finde fejlen i scriptet..

Kunne ikke udfører kommandoen : 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 '"99"=1 WHERE id=1' at line 1
Avatar billede jaw Nybegynder
28. januar 2006 - 20:46 #12
Du har stadig ikke prøvet min 20.18.30?
Avatar billede fixbabe Nybegynder
28. januar 2006 - 20:48 #13
ja...
$sql = 'UPDATE `plads` SET `'.$_POST["plads"]."` = 1 WHERE id='.$_POST["id"];

Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/site/book.php on line 4
Avatar billede nielle Nybegynder
28. januar 2006 - 20:48 #14
Skal det forstås sådan at det felt du ønsker at opdatere hedde 99? I så fald vil jeg starte med at side at det er en dårlig ide at bruge tal som sine feltnavne.

Hvis man alligvel ønsker dette så skal de - som jaw påpeger - omgives med `-tegn (og disse hedder "backtics").
Avatar billede fixbabe Nybegynder
28. januar 2006 - 20:48 #15
har nu brugt 3 dage på at lave et plads booking system... syntes ik der har været andet end bøvl..
Avatar billede nielle Nybegynder
28. januar 2006 - 20:48 #16
Det er fordi at du har en "-tegn inde midt i:

sql = 'UPDATE `plads` SET `'.$_POST["plads"].'` = 1 WHERE id='.$_POST["id"];
Avatar billede fixbabe Nybegynder
28. januar 2006 - 20:50 #17
Parse error: parse error, unexpected '=' in  osv
Avatar billede jaw Nybegynder
28. januar 2006 - 20:52 #18
Må vi lige se det du har nu så?

Og ja Nielle, lige præcis backticks :)
Avatar billede fixbabe Nybegynder
28. januar 2006 - 20:59 #19
<?php
include "inc_top.php";
if (isset($_POST['addbook'])) {
sql = 'UPDATE `plads` SET `'.$_POST["plads"].'` = 1 WHERE id='.$_POST["id"];
    mysql_query($sql) or die("Kunne ikke udfører kommandoen : " . mysql_error());
    print('<script type="text/javascript">window.location="brakets.php"</script>');
}
?>
Avatar billede jaw Nybegynder
28. januar 2006 - 21:02 #20
Du mangler jo $-tegnet foran "sql" -> $sql.

Og no offence, hvis du ikke selv ser det og kan tyde PHP's fejlkoder og hitte rundt i brugen af " og ', så kan jeg altså godt forstå du synes der ikke har været andet end bøvl :)
Avatar billede fixbabe Nybegynder
28. januar 2006 - 21:04 #21
ja nu du siger det kan jeg godt se at der mangler en $ :) tror snart jeg skal i seng... men det virker jaw hvis du gider smide et svar :)
Avatar billede jaw Nybegynder
28. januar 2006 - 21:08 #22
Det gider jeg da i hvert fald :)
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