Avatar billede gizmo1234 Nybegynder
22. februar 2004 - 14:25 Der er 19 kommentarer og
1 løsning

Update duer ikke

Hej.
Jeg kan ikke få update til at virke.
Her er min kode:

<? include "top2.php"; ?>
<?
$connection = mysql_connect("mysql01.cliche.dk","******","*****");
mysql_select_db("*****", $connection);


$query = mysql_query("SELECT * FROM **** ORDER BY id DESC");
while($row = mysql_fetch_array($query)) {

echo"

<form enctype='multipart/form-data' action='update.php' method='post'>

  <textarea name=nyhed cols=35 rows=10>$row[nyhed]</textarea>&nbsp;&nbsp;&nbsp;&nbsp;<input type='submit' name='submit' value='Rediger nyhed'><br><br>
</form>

";
}
?>


Og her er min update.php så:

<? include "top2.php"; ?>

<?
$connection = mysql_connect("mysql01.cliche.dk","***","****");
mysql_select_db("*****", $connection);

mysql_query("UPDATE **** SET nyhed='$nyhed' where id = '$id'") or die (mysql_error());

mysql_close;


?>

<iframe name="iframe" src="nyhed_.php" scrolling="auto" height="100%" width="100%" frameborder="0"></iframe>


Hvad er der galt?
Avatar billede htm Nybegynder
22. februar 2004 - 14:31 #1
Får du nogle fejl? Hvad sker der?
Avatar billede gizmo1234 Nybegynder
22. februar 2004 - 15:10 #2
Der sker det at den når man trykker på submit knappen bare går videre til nyhed_ som den også skal, men den ændrer ikke i databasen
Avatar billede htm Nybegynder
22. februar 2004 - 15:23 #3
Prøv dette. Jeg har optimeret lidt, og bruger $_POST[] i stedet for. Det er sikkert det der er problemet at du ikke får værdierne med over. har også fjernet ' omkring id da id sikkert er et tal i databasen, skal du ikke have ' med omkring.

<?php
include "top2.php";

$connection = mysql_connect("mysql01.cliche.dk","***","****") or die(mysql_error());
mysql_select_db("*****", $connection) or die(mysql_error());
$sql = "UPDATE tabel SET nyhed='" . $_POST['nyhed'] . "' where id = " . $_POST['id'];

mysql_query($sql,$connection) or die(mysql_error());

mysql_close($connection) or die(mysql_error());
?>
Avatar billede gizmo1234 Nybegynder
22. februar 2004 - 15:34 #4
Nu skriver den:

You have an error in your SQL syntax near '' at line 1
Avatar billede htm Nybegynder
22. februar 2004 - 15:38 #5
Har du kopieret min sql eller skrevet den selv?

Prøv lige og post din kode som den ser ud nu.

i $sql står der SET nyhed = ' "

altså først enkelt ' og så dobbelt "
Avatar billede gizmo1234 Nybegynder
22. februar 2004 - 15:40 #6
Her er min Update.php

<?php include "top2.php";

$connection = mysql_connect("mysql01.cliche.dk","******","******") or die(mysql_error());
mysql_select_db("******", $connection) or die(mysql_error());
$sql = "UPDATE tabel SET nyhed='" . $_POST['nyhed'] . "' where id = " . $_POST['id'];

mysql_query($sql,$connection) or die(mysql_error());

mysql_close($connection) or die(mysql_error());
?>


<iframe name="iframe" src="nyhed_.php" scrolling="auto" height="100%" width="100%" frameborder="0"></iframe>
Avatar billede htm Nybegynder
22. februar 2004 - 15:42 #7
prøv lige og skriv
echo $sql;
lige før mysql_query(...

og se hvad den skriver.
Avatar billede gizmo1234 Nybegynder
22. februar 2004 - 15:44 #8
Så skriver den følgende:

UPDATE tabel SET nyhed='Tester' where id = You have an error in your SQL syntax near '' at line 1
Avatar billede htm Nybegynder
22. februar 2004 - 15:46 #9
ok den brokker sig fordi den ikke får id, med! Hvor får du id fra?

evt. bare skriv $id i stedet $_POST['id'] - men hvor får du det fra??
Avatar billede gizmo1234 Nybegynder
22. februar 2004 - 15:49 #10
Altså når man opretter en nyhed så laver mysql databasen en id, og det er der jeg får id'en fra. Men måske man skal hente det først?
Avatar billede htm Nybegynder
22. februar 2004 - 15:54 #11
Du får ikke id'et med over. Du kan gøre det på 2 måder.

den ene:
Put dette med kode med på den side du redigere nyheden på.
<input type="hidden" name="id" value="<?php echo $row['id']; ?>">
så skal du bruge min kode med $_POST['id']

den anden:
din form action ændrer du til update.php?id=<?php echo $row['id']; ?>
eller bare i dit eks.
<form enctype='multipart/form-data' action='update.php?id=$row[id]' method='post'>

så skal du så lave $_POST['id'] om til $_GET['id']
Avatar billede gizmo1234 Nybegynder
22. februar 2004 - 16:04 #12
Form siden:
<? include "top2.php"; ?>
<?
$connection = mysql_connect("******","******","******");
mysql_select_db("******", $connection);


$query = mysql_query("SELECT * FROM d_mof2 ORDER BY id DESC");
while($row = mysql_fetch_array($query)) {

echo"

<form enctype='multipart/form-data' action='update.php?id=$row[id]' method='post'>


  <textarea name=nyhed cols=35 rows=10>$row[nyhed]</textarea>&nbsp;&nbsp;&nbsp;&nbsp;<input type='submit' name='submit' value='Rediger nyhed'><br><br>
</form>

";
}
?>








Update.php:

<?php include "top2.php";

$connection = mysql_connect("******","*****","*******");
mysql_select_db("****", $connection);


$sql = "UPDATE tabel SET nyhed='" . $_GET['nyhed'] . "' where id = " . $_GET['id'];

mysql_query($sql,$connection) or die(mysql_error());

mysql_close($connection) or die(mysql_error());
?>


<iframe name="iframe" src="nyhed_.php" scrolling="auto" height="100%" width="100%" frameborder="0"></iframe>



Den skriver:

Table '******.tabel' doesn't exist
Avatar billede htm Nybegynder
22. februar 2004 - 16:06 #13
tabellen tabel findes ikke, du skal lige lave den om til hvad din tabel hedder. du har skrevet *** i dit eget eks.
Avatar billede gizmo1234 Nybegynder
22. februar 2004 - 16:08 #14
hov.

Den skriver:

Table 'laxy_dk.tabel' doesn't exist

Og det er det som min table hedder?
Avatar billede htm Nybegynder
22. februar 2004 - 16:10 #15
Hedder den tabel ? din database hedder laxy_dk men din tabel hedder vel nyhed eller lign.
Jeg skrev kun tabel i mit eks. fordi jeg ikke anede hvad din tabel hed. Skulle være mærkeligt hvis jeg lige har gættet rigtigt på hvad din tabel hedder :-)
Avatar billede gizmo1234 Nybegynder
22. februar 2004 - 16:13 #16
Hehe, hov :) Har ændret det nu, og nu sker der noget, men ikke det rette.
Når man ændrer teksten så sletter den bare alt teksten. Det er jo meningen at den skal overføre det nye, men det gør den ikke :)

Hvad kan der være galt her?
Det er som om den ikke får teksten med over
Avatar billede gizmo1234 Nybegynder
22. februar 2004 - 16:14 #17
Tror det er denne sætning den er galt med, men da jeg ikke er 100% inde i php så kan jeg ikke lige finde det:

$sql = "UPDATE d_mof2 SET nyhed='" . $_GET['nyhed'] . "' where id = " . $_GET['id'];
Avatar billede htm Nybegynder
22. februar 2004 - 16:15 #18
Korrekt :-)

$_GET er et array af de parametre du får fra adresselinien.
$_POST er et array med de parametre du poster til siden.

$sql = "UPDATE tabel SET nyhed='" . $_POST['nyhed'] . "' where id = " . $_GET['id'];
Avatar billede gizmo1234 Nybegynder
22. februar 2004 - 16:17 #19
Ahhh... nu virker det!
Mange tusinde tak htm, og kom da lige med et svar! :)
Avatar billede htm Nybegynder
22. februar 2004 - 16:19 #20
OK :-)

Godt du fik det til at virke.
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