Avatar billede nc85 Nybegynder
31. januar 2005 - 13:29 Der er 11 kommentarer og
1 løsning

det vil ikke opdatere?

hey alle...

hvorfor vil dette script ikke opdatere?
Den kommer ikke med nogen fejl?

-----
kode:
-----

<?
$conn = mysql_connect("mysql.webglobe.dk", "jysk", "j2004");
mysql_select_db("jysk", $conn);

if ($_POST['submit'] != "") {
 
    $titel = $_POST['TITEL'];
    $beskrivelse = $_POST['BESKRIVELSE'];
    $hvem = $_POST['HVEM'];
    $deadline = $_POST['DEADLINE'];
    $status = $_POST['STATUS'];
    //Sæt global variablerne til lettere navne
    //og vi forhindrer en SQL injection angreb
    #$id = mysql_real_escape_string($_POST['ID']);
    $titel = mysql_real_escape_string($_POST['TITEL']);
    $beskrivelse = mysql_real_escape_string($_POST['BESKRIVELSE']);
    $hvem = mysql_real_escape_string($_POST['HVEM']);
    $deadline = mysql_real_escape_string($_POST['DEADLINE']);
    $status = mysql_real_escape_string($_POST['STATUS']);
   
        $sql = "UPDATE tp_opgaver SET TITEL='$titel', BESKRIVELSE='$beskrivelse', HVEM='$hvem', DEADLINE=''$deadline, STATUS='$status' WHERE ID=$id";
   
    echo ("Opgaven er nu opdateret<br />");
    #if (mysql_query($rediger)) {
       
        //Hvis $rediger har opdateret db så skal den printe dette ud:
        #echo ("Opgaven er nu opdateret");
        #}
        #else {
        //Hvis $rediger har lavet en fejl skriv dette ud:
        #echo ("Der skete en fejl ved opdatering af opgave" . mysql_error() . );
        #}
}
elseif($_REQUEST['id'] != "")
{
    $id = $_REQUEST['id'];
    $rediger = mysql_query("SELECT * FROM tp_opgaver WHERE ID=$id") or die(mysql_error());
   
    while($myrow = mysql_fetch_assoc($rediger)) {
   
    $titel = $myrow["TITEL"];
    $beskrivelse = $myrow["BESKRIVELSE"];
    $hvem = $myrow["HVEM"];
    $deadline = $myrow["DEADLINE"];
    $hvem = $myrow["STATUS"];
}
}
?>
Avatar billede alister_crowley Nybegynder
31. januar 2005 - 13:31 #1
Tror heller du må skifte dit mysql password :P

Og fejlen er at du ALDRIG kører din sql kommando med mysql_query() i update funktionen.
fordi at # svarer til en kommentar, og du har dissablet selv udførelsen.
Avatar billede nc85 Nybegynder
31. januar 2005 - 13:33 #2
god idé :) min fejl :)
Avatar billede nc85 Nybegynder
31. januar 2005 - 13:39 #3
Så jeg skriver hvad i stedet?

<?
$conn = mysql_connect("xxx", "xxx", "xxx");
mysql_select_db("jysk", $conn);

if ($_POST['submit'] != "") {
 
    $titel = $_POST['TITEL'];
    $beskrivelse = $_POST['BESKRIVELSE'];
    $hvem = $_POST['HVEM'];
    $deadline = $_POST['DEADLINE'];
    $status = $_POST['STATUS'];
    //Sæt global variablerne til lettere navne
    //og vi forhindrer en SQL injection angreb
    #$id = mysql_real_escape_string($_POST['ID']);
    $titel = mysql_real_escape_string($_POST['TITEL']);
    $beskrivelse = mysql_real_escape_string($_POST['BESKRIVELSE']);
    $hvem = mysql_real_escape_string($_POST['HVEM']);
    $deadline = mysql_real_escape_string($_POST['DEADLINE']);
    $status = mysql_real_escape_string($_POST['STATUS']);
   
        $sql = "UPDATE tp_opgaver SET TITEL='$titel', BESKRIVELSE='$beskrivelse', HVEM='$hvem', DEADLINE=''$deadline, STATUS='$status' WHERE ID=$id";
    if (mysql_query($sql)) {
    echo ("Opgaven er nu opdateret<br />");
   
       
        //Hvis $rediger har opdateret db så skal den printe dette ud:
        #echo ("Opgaven er nu opdateret");
        #}
        #else {
        //Hvis $rediger har lavet en fejl skriv dette ud:
        #echo ("Der skete en fejl ved opdatering af opgave" . mysql_error() . );
        #}
}
elseif($_REQUEST['id'] != "")
{
    $id = $_REQUEST['id'];
    $rediger = mysql_query("SELECT * FROM tp_opgaver WHERE ID=$id") or die(mysql_error());
   
    while($myrow = mysql_fetch_assoc($rediger)) {
   
    $titel = $myrow["TITEL"];
    $beskrivelse = $myrow["BESKRIVELSE"];
    $hvem = $myrow["HVEM"];
    $deadline = $myrow["DEADLINE"];
    $hvem = $myrow["STATUS"];
}
}
?>
Avatar billede alister_crowley Nybegynder
31. januar 2005 - 13:42 #4
Du laver:

-------------------
        $sql = "UPDATE tp_opgaver SET TITEL='$titel', BESKRIVELSE='$beskrivelse', HVEM='$hvem', DEADLINE=''$deadline, STATUS='$status' WHERE ID=$id";
    if (mysql_query($sql)) {
    echo ("Opgaven er nu opdateret<br />");
 
     
        //Hvis $rediger har opdateret db så skal den printe dette ud:
        #echo ("Opgaven er nu opdateret");
        #}
        #else {
        //Hvis $rediger har lavet en fejl skriv dette ud:
        #echo ("Der skete en fejl ved opdatering af opgave" . mysql_error() . );
        #}
-----------------

om til


--------------------

$sql = "UPDATE tp_opgaver SET TITEL='$titel', BESKRIVELSE='$beskrivelse', HVEM='$hvem', DEADLINE=''$deadline, STATUS='$status' WHERE ID=$id";
if (mysql_query($sql))
{
  echo ("Opgaven er nu opdateret");
}
else
{
  echo ("Der skete en fejl ved opdatering af opgave" . mysql_error() . );
}

---------------------
Avatar billede nc85 Nybegynder
31. januar 2005 - 13:47 #5
Så får jeg denne fejl nu?:

Parse error: parse error in d:\webs\jysk\www\admin\opg_rediger.php on line 78
Avatar billede alister_crowley Nybegynder
31. januar 2005 - 13:58 #6
ja, ret dette her (dit script, ikke mit :P)

echo ("Opgaven er nu opdateret");
}
else
{
  echo ("Der skete en fejl ved opdatering af opgave" . mysql_error() . );
-----
til:
-----
echo "Opgaven er nu opdateret";
}
else
{
  echo "Der skete en fejl ved opdatering af opgave".mysql_error();
}

---

vist en ASP nørd som har lavet dette.
Avatar billede nc85 Nybegynder
31. januar 2005 - 14:06 #7
Så printer den denne fejl ud når man prøver at opdatere:

Der skete en fejl ved opdatering af opgaveYou have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'I dag, STATUS='Ikke begyndt' WHERE ID=' at line 1

Og jeg har ikke lavet nogle af disse tegn i det jeg har ændret : ' " eller nogle lign.
Så det er vel ikke tegn der skal escapes?
Avatar billede alister_crowley Nybegynder
31. januar 2005 - 14:11 #8
Fejlen er ved Deadline=''$deadline som skal være

DEADLINE='$deadline'

derudover bør du tilføje '' omkring $id i:  WHERE ID=$id
altså WHERE ID='$id'
Avatar billede nc85 Nybegynder
31. januar 2005 - 14:15 #9
nu giver den godt nok ingen fejl, men den opdaterer stadig ikke, selvom den udskriver opgaven er opdateret
Avatar billede nc85 Nybegynder
31. januar 2005 - 14:16 #10
jeg har fået det til at virke nu, mange tak for hjælpen, lægger du lige et svar?
Avatar billede alister_crowley Nybegynder
31. januar 2005 - 14:26 #11
nej tak, samler ikke på points.
Avatar billede nc85 Nybegynder
31. januar 2005 - 14:27 #12
ok - men ihvertfald, tak for hjælpen
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