Avatar billede fri0z Nybegynder
10. august 2005 - 12:17 Der er 30 kommentarer og
1 løsning

UPDATE SET hjælp?

hey min update kode virker ikke, måske nogen der kan hjælpe.

KODE: <?

$db = mysql_connect("localhost", "mads1", "210387");
mysql_select_db("mads1", $db);

if($_POST["210387"] == "210387") {
    echo "bruger info er opdateret <a href='index.php'>Tilbage</a>";
   
    $bruger_brugernavn = $_POST["nyhed_overskrift"];
    $bruger_kodeord = $_POST["bruger_kodeord"];
    $bruger_navn = $_POST["bruger_navn"];
    $bruger_info = $_POST["bruger_info"];
    $bruger_timer = $_POST["bruger_timer"];
    $bruger_betalt = $_POST["bruger_betalt"];
    $id = $_POST["id"];
   
    mysql_query("UPDATE bruger SET brugernavn = '$bruger_brugernavn', kodeord = '$bruger_kodeord', navn = '$bruger_navn', info = '$bruger_info', timer = '$bruger_timer', betalt = '$bruger_betalt' WHERE id = $id");
   
    } else {
   
    $id = $_GET["id"];
    $sql = mysql_query("SELECT * FROM bruger WHERE id = $id");
    $data = mysql_fetch_array($sql);
?>
<form method="GET" action="<? echo $PHP_SELF ?>">

    admin kode (sikkerhed):<br>
    <input type="password" name="210387"><br>
   
    Navn:<br>
    <input type="text" name="bruger_navn" value="<? echo $data[navn]?>">
    <br>
   
    Info om/til elev:<br>
    <textarea name="bruger_info"><? echo $data[info]?>
    </textarea><br>
       
    Timer haft/tilbage:<br>
    <input type="text" name="bruger_timer" value="<? echo $data[timer]?>">
    <br>
    betalt og ikke betalt:<br>
    <input type="text" name="bruger_betalt" value="<? echo $data[betalt]?>">
    <br>
   
    Brugernavn:<br>
    <input type="text" name="bruger_brugernavn" value="<? echo $data[brugernavn]?>">
    <br>
   
    Kodeord:<br>
    <input type="password" name="bruger_kodeord" value="<? echo $data[kodeord]?>">
    <br>
   
    <input type="submit" value="Opret Elev">
    <input type="hidden" name="id" value="<? echo $data[id] ?>">
</form>

<?
}
?>


den reloader bare uden at updatere databasen.

VH. Mads
Avatar billede arne_v Ekspert
10. august 2005 - 12:21 #1
kommer du ind i if blokken ?
Avatar billede arne_v Ekspert
10. august 2005 - 12:22 #2
og prøv lige at smæk en

or die(mysql_error())

på din mysql_query (den med UPDATE)
Avatar billede jokkejensen Novice
10. august 2005 - 12:22 #3
husk at slette dit pass og login informationer...

er $_POST["210387"] = 210387 ?
Avatar billede arne_v Ekspert
10. august 2005 - 12:24 #4
og undlad at vise password i den genererede HTML kode ...
Avatar billede fri0z Nybegynder
10. august 2005 - 12:27 #5
nu:
    mysql_query("UPDATE bruger SET brugernavn = '$bruger_brugernavn', kodeord = '$bruger_kodeord', navn = '$bruger_navn', info = '$bruger_info', timer = '$bruger_timer', betalt = '$bruger_betalt' WHERE id = $id or die(mysql_error()");

ingen ændring
Avatar billede arne_v Ekspert
10. august 2005 - 12:35 #6
får du udfyldt det password rigtigt ?
Avatar billede fri0z Nybegynder
10. august 2005 - 12:36 #7
ja...
Avatar billede erikjacobsen Ekspert
10. august 2005 - 12:37 #8
Ikke
    mysql_query("UPDATE bruger SET brugernavn = '$bruger_brugernavn', kodeord = '$bruger_kodeord', navn = '$bruger_navn', info = '$bruger_info', timer = '$bruger_timer', betalt = '$bruger_betalt' WHERE id = $id or die(mysql_error()");
men
    mysql_query("UPDATE bruger SET brugernavn = '$bruger_brugernavn', kodeord = '$bruger_kodeord', navn = '$bruger_navn', info = '$bruger_info', timer = '$bruger_timer', betalt = '$bruger_betalt' WHERE id = $id") or die(mysql_error());
Avatar billede erikjacobsen Ekspert
10. august 2005 - 12:39 #9
Mon ikke
if($_POST["210387"] == "210387") {
skal være
if($_POST["password"] == "210387") {

(stadig en skummel idé med password i html-koden, men lad os få det til at virke)
Avatar billede erikjacobsen Ekspert
10. august 2005 - 12:42 #10
glem sidste kommentar ;)
Avatar billede fri0z Nybegynder
10. august 2005 - 12:43 #11
ingen forskel, pass er i php koden, men kan vel bare bruge en if session = login
Avatar billede erikjacobsen Ekspert
10. august 2005 - 12:46 #12
1) Skriver den:    echo "bruger info er opdateret <a href='index.php'>Tilbage</a>";
2) Hvis den gør, ændrer den så nogen felter (du har ikke 100% samme navn i form og i PHP-kode)
Avatar billede erikjacobsen Ekspert
10. august 2005 - 12:47 #13
I hvert fald skal du nok lige overveje: $_POST["nyhed_overskrift"];
Avatar billede fri0z Nybegynder
10. august 2005 - 12:48 #14
nej gør den ikke, reloader sig selv nulstiller felter og ændrer ikke noget
Avatar billede erikjacobsen Ekspert
10. august 2005 - 12:49 #15
Ok. Så ku' det være en rigtig god ide at ændre
    <form method="GET"
til
    <form method="POST"
Avatar billede fri0z Nybegynder
10. august 2005 - 12:55 #16
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\inetpub\vhosts\wi2.ots.dk\subdomains\mads1\httpdocs\ksk\ret.php on line 86

= 86 $data = mysql_fetch_array($sql);
Avatar billede fri0z Nybegynder
10. august 2005 - 12:56 #17
$sql = mysql_query("SELECT * FROM bruger WHERE id = $id");
Avatar billede fri0z Nybegynder
10. august 2005 - 13:05 #18
anyone?
Avatar billede erikjacobsen Ekspert
10. august 2005 - 13:07 #19
$sql = mysql_query("SELECT * FROM bruger WHERE id = $id") or die(mysql_error());
Avatar billede fri0z Nybegynder
10. august 2005 - 13:10 #20
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
Avatar billede fri0z Nybegynder
10. august 2005 - 13:12 #21
glem den oppe over, samme fejl stadig
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\inetpub\vhosts\wi2.ots.dk\subdomains\mads1\httpdocs\ksk\ret.php on line 86
Avatar billede fri0z Nybegynder
10. august 2005 - 13:12 #22
$sql = mysql_query("SELECT * FROM bruger WHERE id = $id or die(mysql_error()");

er det ikke mere rigtigt?
Avatar billede erikjacobsen Ekspert
10. august 2005 - 13:16 #23
Det skal være som jeg skriver.

Din $id er tom, sikkert fordi din $_GET["id"] er tom, sikkert fordi der ikke står sådan i adresselinien:  ...?id=7913
Avatar billede tipsen Nybegynder
12. august 2005 - 00:48 #24
$_POST['210387'] er da ikke et gyldigt variabelnavn - det må ikke starte med et tal!
Avatar billede erikjacobsen Ekspert
12. august 2005 - 08:56 #25
Jo, i den sammenhæng må det gerne. Blot navnet i formen er det samme.
Avatar billede tipsen Nybegynder
12. august 2005 - 11:47 #26
Dét forstår jeg ikke - hvordan vil det eks. fungere i PHP med register_globals=on - så vil man få ugyldige variabelnavne!? Derudover står der i http://www.w3.org/TR/html401/types.html#type-cdata:

<quote>ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").</quote>

Please enlighten me!
Avatar billede erikjacobsen Ekspert
12. august 2005 - 11:58 #27
"register_globals=on" er ikke noget man gør længere, så det er totalt ligegyldigt.
Avatar billede tipsen Nybegynder
12. august 2005 - 14:20 #28
register_globals er slået til på nogle webhoteller - vi behøver ikke diskutere det fornuftige i dette, da vi med stor sandsynlighed er temmelig enige her.

Men derudover ser det da heller ikke ud til at det er et lovligt navn til et formularelement jvf. specifikationen?

Mvh Tommy
Avatar billede fri0z Nybegynder
16. august 2005 - 13:44 #29
satte 2 `` og fjernede or die. nu virker det...
$sql = mysql_query("SELECT * FROM ´bruger` WHERE `id` = $id");
Avatar billede erikjacobsen Ekspert
16. august 2005 - 13:52 #30
Du skal såmænd ikke fjerne "or die...": se min kommentar [10/08-2005 13:07:37]
Avatar billede fri0z Nybegynder
29. september 2005 - 09:56 #31
nå...
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