Avatar billede torbenclausen Nybegynder
28. november 2005 - 13:13 Der er 5 kommentarer

Fejl i update set

Hej

Har kastet mig ud i noget php og sql og er ret blank.
i det følgende kan man rette i et link. Den sender fint variablerne ind i tekstfelterne, men så snart man siger "ret" kommer følgende fejl
Link kunne ikke opdateres 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 'WHERE link_id='19\\\''' at line 5

Synes nu altså bare ikke der er en fejl. Nogen der kan hjælpe?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>TITLE</title>
<meta http-equiv="content-type"
    content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php

include 'ps.inc.php';

if (isset($_POST['url'])):

  $url = $_POST['url'];
  $title = $_POST['title'];
  $description = $_POST['description'];
  $id = $_POST['link_id'];
  $sql = "UPDATE links SET
          url='$url',
          title='$title',
          description='$description',
          WHERE link_id='$id'";
  if (@mysql_query($sql)) {
    echo '<p>Link opdateret</p>';
  } else {
    echo '<p>Link kunne ikke opdateres ' .
        mysql_error() . '</p>';
  }

?>

<p><a href="link_manage.php">Return to authors list</a></p>

<?php
else:

  $id = $_GET['link_id'];
  $link = @mysql_query(
      "SELECT url, title, description FROM links WHERE link_id='$id'");
  if (!$link) {
    exit('<p>Error fetching author details: ' .
        mysql_error() . '</p>');
  }

  $link = mysql_fetch_array($link);

  $url = $link['url'];
  $title = $link['title'];
  $description = $link['description'];

  $url = htmlspecialchars($url);
  $title = htmlspecialchars($title);
  $description = htmlspecialchars($description);

?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>Edit the author:</p>
<label>Name: <input type="text" name="url" value="<?php echo $url; ?>" /></label><br />
<label>Email: <input type="text" name="title" value="<?php echo $title; ?>" /></label><br />
<label>Email: <input type="text" name="description" value="<?php echo $description; ?>" /></label><br />
<input type="hidden" name="link_id" value="<?php echo $id; ?>" />
<input type="submit" value="SUBMIT" /></p>
</form>

<?php endif; ?>

</body>
</html>
Avatar billede hmortensen Nybegynder
28. november 2005 - 13:16 #1
Du har et komma efter description variablen og der skal ikke '' rundt om værdien på et talfelt, som fx. id.
Avatar billede torbenclausen Nybegynder
28. november 2005 - 13:32 #2
Takker. Funger stadig ikke helt.

Hvis jeg fjerner kommaet, melder den ingen fejl. Hvis jeg fjerner " vil den slet inden ting...

Når bare kommaet er fjernet skriver den at linket er opdateret. MEN når så man går tilbage til sin liste over links, er det ikke opdateret. Men når man så klikker for at rette det igen, er det opdateret, ret mystisk synes jeg?
Avatar billede fixxxer Nybegynder
28. november 2005 - 13:33 #3
Det er kun et spørgsmål om det komma du har for meget efter description, som hmortensen skriver.

Det er dog ikke direkte forkert at have '' rundt om en talværdi, mySQL forstår både med og uden '' omkring talværdier lige fint..
Avatar billede fixxxer Nybegynder
28. november 2005 - 13:34 #4
Så er den næste åbenlyse tanke: er $id sat?

Mit bud at det er den ikke.. Kunne det være at du skulle bruge $_GET['id'] i stedet?
Avatar billede torbenclausen Nybegynder
28. november 2005 - 13:37 #5
Hov sorry! Det funger, mig der roder i det. Det var bare kommaet der var galt:o)

Så lige et hurtigt fra ærmet, er det svært at lave et output på en side som gør at title+description vises og hvis man så klikker på title linker den til url fra databasen?

hmortensen -> smidder du et svar?

Endnu engang tak tak tak, var ved at rykke hovedet af mig selv;o)
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