Avatar billede jhb2002 Nybegynder
07. marts 2005 - 22:14 Der er 20 kommentarer og
1 løsning

UPDATE sætning med variabler, virker ikke.

Hej Eksperter,

Jeg sider og roder med noget nyhedsystem, men jeg kan ikke få følgende update sætning til at virke...

$query = ("UPDATE news SET nick = '.$nick.', titel = '.$titel.', nyhed = '.$nyhed.' WHERE id = '.$_GET[id].'");


Den kommer med følgende fejl...

Query failed: 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


Håber der er nogle der kan hjælpe mig, da jeg er ved at blive gråhåret af det her....
Avatar billede detox Nybegynder
07. marts 2005 - 22:16 #1
$query = "UPDATE news SET nick='$nick', titel='$titel', nyhed='$nyhed' WHERE id='$_GET[id]'";
Avatar billede arne_v Ekspert
07. marts 2005 - 22:16 #2
Er id et tekst felt ?

Ellers:

WHERE id = ".$_GET[id]);
Avatar billede jhb2002 Nybegynder
07. marts 2005 - 22:23 #3
har prøvet begge forslag nu, hjælp desværre ikke, stadig samme fejl.....
Avatar billede erikjacobsen Ekspert
07. marts 2005 - 22:25 #4
Vi skal lige se lidt mere kode, fx hvor du har diy kald til mysql_query
Avatar billede hmortensen Nybegynder
07. marts 2005 - 22:28 #5
Prøv at udskrive din SQL sætning

echo $query;
Avatar billede jhb2002 Nybegynder
07. marts 2005 - 22:29 #6
<?php
her er hele scriptet....

if($opdater) {
$query = ("UPDATE news SET nick='$nick', titel='$titel', nyhed='$nyhed' WHERE id = ".$_GET[id]);
//print($query); // fejlfinding...
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
echo "Nyheder er blevet opdateret";
}
Avatar billede erikjacobsen Ekspert
07. marts 2005 - 22:39 #7
Og hvad udskriver print($query);  ?
Avatar billede jhb2002 Nybegynder
07. marts 2005 - 22:44 #8
ikke noget, da den fejler før den kommer der til....
Avatar billede erikjacobsen Ekspert
07. marts 2005 - 23:39 #9
Så er det i en anden mysql_query(...) du har fejlen.
Avatar billede cpufan Juniormester
08. marts 2005 - 00:02 #10
nu er jeg ikke stiv i php, men..

$query = ("UPDATE news SET nick='$nick', titel='$titel', nyhed='$nyhed' WHERE id = ".$_GET[id]);
der mangler i hvert tilfælde en parantes slut... eller også er der en start for meget i begyndelsen
Avatar billede cpufan Juniormester
08. marts 2005 - 00:03 #11
øhhh, det er åbenbart dansk retstavning jeg ikke er stiv i......
paranteserne passer, - kan jeg se nu...

Go' nat ;-)
Avatar billede kjulius Novice
08. marts 2005 - 00:07 #12
Hvorfor er print($query) kommenteret ud? Så vil den vel aldrig udskrive din SQL, eller...?
Avatar billede kjulius Novice
08. marts 2005 - 00:18 #13
Du har tjekket, at du har en tabel som hedder news, og at denne indeholder felterne nick, titel, nyhed og id?
Avatar billede sukos Juniormester
08. marts 2005 - 04:41 #14
$query = ("UPDATE `news` SET `nick`='". $nick ."', `titel`='". $titel ."', `nyhed`='". $nyhed ."' WHERE `id` = '". $_GET["id"] ."'");
Avatar billede sukos Juniormester
08. marts 2005 - 04:41 #15
HOV
$query = "UPDATE `news` SET `nick`='". $nick ."', `titel`='". $titel ."', `nyhed`='". $nyhed ."' WHERE `id` = '". $_GET["id"] ."'";
Avatar billede jhb2002 Nybegynder
08. marts 2005 - 17:16 #16
jeg har rodet med det så meget nu at jeg er kommet frem til at den ikke får id'et med...

$query = "UPDATE news SET nick = '". $nick ."', titel = '". $titel ."', nyhed = '". $nyhed ."' WHERE id = '".$_GET['id'].; <-- SQL sætning i script...

UPDATE news SET nick = 'webmaster', titel = 'hej igen', nyhed = 'vi tester lige igen' WHERE id = '' <-- Indhold af $query...
Avatar billede sukos Juniormester
08. marts 2005 - 17:21 #17
Så er det jo fordi at du IKKE her en get variabel, $_GET["id"]
Avatar billede jhb2002 Nybegynder
08. marts 2005 - 17:29 #18
jeg smider lige hele php filen...

<?php

include('header.php');
include('mysql.inc.php');

connect_db($dbhost, $dbuser, $dbpass);

select_db($database);

$query = "SELECT * FROM news WHERE id = '".$_GET['id']."'";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
print($query);
$line = mysql_fetch_array($result, MYSQL_ASSOC);

?>

<center><form action="<?php echo $php_self ?>">
        <p>Dit Navn:</p>
        <input type="text" name="nick" value="<?php print($line['nick']); ?>"><br />
        <p>Overskrift:</p>
        <input type="text" name="titel" value="<?php print($line['titel']); ?>"><br />
        <p>Selve nyheden:</p>
        <textarea  name="nyhed" rows="6" cols="20" value=""><?php print($line['nyhed']); ?></textarea><br />
        <input type="submit" name="opdater" value="Opdatér">
        <input type="reset" name="Send" value="Ryd alt">
</form></center>

<?php
if($opdater) {
$query = "UPDATE news SET nick = '". $nick ."', titel = '". $titel ."', nyhed = '". $nyhed ."' WHERE id = '".$_GET['id']."'";
print($query);
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
//echo "Nyheden er blevet opdateret";
}

include('footer.php');
?>


jeg får id første gang jeg bruger $_get[id] altså i den første sætning, så der virker det altså.....
Avatar billede erikjacobsen Ekspert
08. marts 2005 - 20:29 #19
I den form du viser her - rart at se det endelig - har du ikke en $_GET['id'] defineret.
Du har det nok fra den foregående side.

Du skal lave 2 ting om:

1) Flyt opdateringen op i toppen - før din select. Så ser du ændringen med det samme
2) <form action="<?php echo $php_self ?>?id=<?php echo $_GET['id'];?>">
3) <?php print(htmlentities($line['nyhed'])); ?>

Og gentag htmlentities på alle dine felter
Avatar billede jhb2002 Nybegynder
01. marts 2007 - 21:27 #20
ost
Avatar billede cpufan Juniormester
01. marts 2007 - 23:21 #21
ja det er da selverkendelse, der vil noget ;-)
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
Computerworld tilbyder specialiserede kurser i database-management

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