Avatar billede walkie84 Nybegynder
11. februar 2007 - 17:44 Der er 7 kommentarer og
1 løsning

problem med mysql update

Jeg skal opdatere nogle poster i en MySQL db, men når jeg gør det, ændrer den intet i databasen, og jeg kan simpelthent ikke finde fejlen.

Jeg bruger 2 nedenstående filer:


[edit.php]
--------------------------------------------------

...
        <?
        include("database.php");
        $edit_user = mysql_query("SELECT * FROM users WHERE username='$session->username'") or die(mysql_error());
        $e_user = mysql_fetch_array($edit_user);


        ?>
        <form action="edit2.php" method="POST">
        <table align="left" border="0" cellspacing="0" cellpadding="3">
        <tr>
        <td>Age:</td>
        <td><input type="text" name="age" maxlength="50" value="<? echo $e_user[age]; ?>">
        </td>
        </tr>
        <tr>
        <td>Msn:</td>
        <td><input type="text" name="msn" maxlength="50" value="<? echo $e_user[msn]; ?>">
        </td>
        </tr>
   
        <tr><td colspan="2" align="right">
        <input type="submit" value="Edit Account"></td></tr>
        <tr><td colspan="2" align="left"></td></tr>
        </table>
        </form>

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



[edit2.php]
-------------------------------------------------
<?php

include("database.php");
include("sessions.php");

$age = $_POST['age'];
$msn = $_POST['msn'];

$updt = mysql_query("SELECT * FROM users WHERE username = '$session->username'") or die(mysql_error());
if (mysql_numrows($updt) < 1)){
    mysql_query("INSERT INTO user (age, msn) VALUES ('$age', '$msn')");
} else {
    mysql_query("UPDATE users SET age = '$age', msn = '$msn' WHERE username = '$session->username'") or die(mysql_error());
}
?>

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

Når jeg kører det, virker det som om den udfører det, men intet bliver indsat i databasen.

$session->username  har jeg prøvet at udskrive, og den virker.
'age' er af typen TEXT i min database, og ikke INT!
Avatar billede erikjacobsen Ekspert
11. februar 2007 - 17:48 #1
Start med at finde ud af om du har en fejl i sql:

mysql_query("INSERT INTO user (age, msn) VALUES ('$age', '$msn')") or die(mysql_error());

Så vil du måske opdage om du har været konsekvent med user og users ...
Avatar billede walkie84 Nybegynder
11. februar 2007 - 21:47 #2
ja det var en smutter :)

Nu har jeg rettet det til users.. men får stadig den samme fejl, og den skriver ingen sql error.. bare en blank skærm.
Avatar billede walkie84 Nybegynder
13. februar 2007 - 16:43 #3
og så dør denne post bare efter første kommentar..
Avatar billede michael_stim Ekspert
13. februar 2007 - 16:47 #4
Vil gætte på det er $session->username der laver ged i den. Og hvorfor først sætte en session for derefter at lægge den i en klasse???
Du har jo altid $_SESSION['username'] med dig.
Avatar billede walkie84 Nybegynder
21. februar 2007 - 21:16 #5
Det ændrer ikke noget desværre :(
Avatar billede michael_stim Ekspert
21. februar 2007 - 22:16 #6
enten skriver du:
username = '".$session->username()."'//Hvis der altså ikke er nogle parametre.
Eller også bruger du de session der formodentlig allerede er sat, istedet for at bruge unødvendige kræfter på at kalde på en klasse.
username = '".$_SESSION['username']."'
Avatar billede michael_stim Ekspert
21. februar 2007 - 22:33 #7
Og det ser heller ikke ud til at du instansierer din klasse:
$session=new klassenavn();
Avatar billede walkie84 Nybegynder
11. august 2007 - 10:28 #8
sry virker sq stadig ik..
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