Avatar billede fbb Nybegynder
14. april 2004 - 17:23 Der er 9 kommentarer og
1 løsning

update virker ikke

Der kommer ingen fejl og den henter fint ud af databasen, kan bare ikke få den til at update.
Kode til uskriv:
<?php
include('top.php');
?>
Her kan du slette eller rette Brugere.<br>
<?php
include('../db.php');
if (isset($_GET['deleteUser'])) {
mysql_query("delete from infofirat where id = '$deleteUser'");
}
if (isset($_GET['RetUser'])) {
$res = mysql_query("SELECT * FROM infofirat where id = '$_GET[RetUser]'");
while ($row = mysql_fetch_array($res)) {
echo'<form method="post" name="frmKlyt" action="post.php?RetUser='. $_GET[RetUser] .'" enctype="multipart/form-data">
<input type="hidden" name="up" value="RetUser">
Navn:<br>&nbsp;<input type="text" name="navn" style="width: 150px" value="'.$row['navn'].'"><br>
Brugernavn:<br>&nbsp;<input type="text" name="brugernavn" style="width: 150px" value="'.$row['brugernavn'].'"><br>
Alder:<br>&nbsp;<input type="text" name="alder" style="width: 150px" value="'.$row['alder'].'"><br>
Landsdel:<br>&nbsp;<input type="text" name="landsdel" style="width: 150px" value="'.$row['landsdel'].'"><br>
Skole:<br>&nbsp;<input type="text" name="skole" style="width: 150px" value="'.$row['skole'].'"><br>
Fritid:<br>&nbsp;<input type="text" name="fritid" style="width: 150px" value="'.$row['fritid'].'"><br>
Sport:<br>&nbsp;<input type="text" name="sport" style="width: 150px" value="'.$row['sport'].'"><br>
Klub:<br>&nbsp;<input type="text" name="klub" style="width: 150px" value="'.$row['klub'].'"><br>
Farve:<br>&nbsp;<input type="text" name="farve" style="width: 150px" value="'.$row['farve'].'"><br>
Sang:<br>&nbsp;<input type="text" name="sang" style="width: 150px" value="'.$row['sang'].'"><br>
Film:<br>&nbsp;<input type="text" name="film" style="width: 150px" value="'.$row['film'].'"><br>
Tøjstil:<br>&nbsp;<input type="text" name="toejstil" style="width: 150px" value="'.$row['toejstil'].'"><br>
Bil:<br>&nbsp;<input type="text" name="bil" style="width: 150px" value="'.$row['bil'].'"><br>
Drikke forbrug:<br>&nbsp;<input type="text" name="druk" style="width: 150px" value="'.$row['druk'].'"><br>
Ryger:<br>&nbsp;<input type="text" name="ryger" style="width: 150px" value="'.$row['ryger'].'"><br>
Civilstatus:<br>&nbsp;<input type="text" name="civilstatus" style="width: 150px" value="'.$row['civilstatus'].'"><br>
Mail:<br>&nbsp;<input type="text" name="mail" style="width: 150px" value="'.$row['mail'].'"><br>
MSN:<br>&nbsp;<input type="text" name="msn" style="width: 150px" value="'.$row['msn'].'"><br>
&nbsp;<a href="imagelist.php?InsertImage" target="_blank">Se uploadede filer</a> (Åbner i nyt vindue!)<br>
&nbsp;Indtast filnavnet på billedet du vil bruge<br>
Billede<br>&nbsp;<input type="text" name="image" style="width: 300px" value="'.$row['image'].'"><br>
&nbsp;<input type="submit" value="Send">
</form>';
}
}   
$res = mysql_query("SELECT * FROM infofirat ORDER BY brugernavn");
while ($row = mysql_fetch_array($res)) {
echo'<table border="0" cellpadding="0" cellspacing="0" width="100%">';
echo'<tr>';
echo'<td width="120"><font face="Verdana" size="2">'.$row['brugernavn'].'</font></td>';
echo'<td><font face="Verdana" size="2">[<a href="?deleteUser='.$row['id'].'"
onClick="if(confirm(\'Vil du slette denne bruger?\'))this.href=\'?deleteUser='.$row['id'].'\'; else this.href=\'#\'">Slet</a>] - [<a href="?RetUser='.$row['id'].'">Ret</a>]</font></td>';
echo'</tr>';
echo'</table>';
}
?>
<?php
include('bund.php');
?>

Og post.php:
if ($_POST['up'] == 'bruger') {
    mysql_query("INSERT INTO infofirat VALUES ('','$_POST[navn]','$_POST[brugernavn]','$_POST[alder]','$_POST[landsdel]','$_POST[skole]','$_POST[fritid]','$_POST[sport]','$_POST[klub]','$_POST[farve]','$_POST[sang]','$_POST[film]','$_POST[toejstil]','$_POST[bil]','$_POST[druk]','$_POST[ryger]','$_POST[civilstatus]','$_POST[oprettet]','$_POST[mail]','$_POST[msn]','$_POST[image]')") or die(mysql_error());
    $id = mysql_insert_id();
    header("Location: index.php");
}

Som sagt ingen fejl, der skrever bare ingen ting

og min dump:
CREATE TABLE `infofirat` (
  `id` int(11) NOT NULL auto_increment,
  `navn` varchar(100) NOT NULL default '',
  `brugernavn` varchar(100) NOT NULL default '',
  `alder` varchar(100) NOT NULL default '',
  `landsdel` varchar(100) NOT NULL default '',
  `skole` varchar(100) NOT NULL default '',
  `fritid` varchar(100) NOT NULL default '',
  `sport` varchar(100) NOT NULL default '',
  `klub` varchar(100) NOT NULL default '',
  `farve` varchar(100) NOT NULL default '',
  `sang` varchar(100) NOT NULL default '',
  `film` varchar(100) NOT NULL default '',
  `toejstil` varchar(100) NOT NULL default '',
  `bil` varchar(100) NOT NULL default '',
  `druk` varchar(100) NOT NULL default '',
  `ryger` varchar(100) NOT NULL default '',
  `civilstatus` varchar(100) NOT NULL default '',
  `oprettet` varchar(100) NOT NULL default '0000-00-00',
  `mail` varchar(100) NOT NULL default '',
  `msn` varchar(100) NOT NULL default '',
  `image` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=13 ;
Avatar billede fbb Nybegynder
14. april 2004 - 17:25 #1
Eller den står til en blank side post.php?RetUser=11 (uden at rette)
Avatar billede dennismp Nybegynder
14. april 2004 - 18:04 #2
Når du bruger mysql så er det dit eget ansvar at håndtere mysql-fejl.

dvs at du bør altid tjekke om mysql_query() returnerer false eller ej - det kan du jo starte med at gøre på alle dine mysql_query().

Men jeg har svært ved at få øje på at du laver nogen update? Kan kun se select, inserts og deletes
Avatar billede fbb Nybegynder
14. april 2004 - 20:30 #3
Hov sorry mig der har skrevet forkert, i post ser den selv sådan her ud:
if ($_POST['up'] == 'RetUser') {
    mysql_query("UPDATE infofirat set
navn = '$_POST[navn]',
brugernavn = '$_POST[brugernavn]',
alder = '$_POST[alder]',
landsdel = '$_POST[landsdel] ,
skole = '$_POST[skole]',
fritid = '$_POST[fritid]',
sport = '$_POST[sport]',
klub = '$_POST[klub]',
farve = '$_POST[farve]',
sang = '$_POST[sang]',
film = '$_POST[film]',
toejstil = '$_POST[toejstil]',
bil = '$_POST[bil]',
druk = '$_POST[druk]',
ryger = '$_POST[ryger]',
civilstatus = '$_POST[civilstatus]',
mail = '$_POST[mail]',
msn = '$_POST[msn]',
image = '$_POST[image]'
where id = '$RetUser'");
    header("Location: index.php");
}

den går bare til index.php uden at der sker noget, altså den retter ikke i database
Avatar billede dennismp Nybegynder
14. april 2004 - 20:34 #4
tilføj or die(mysql_error()) eller noget. Så kan du finde ud af hvad fejlmeddelelsen er
Avatar billede fbb Nybegynder
14. april 2004 - 20:57 #5
Der er kommer ingen fejl, det der er underligt, den updater bare ikke..

Den går lige så fint til index.php når man klikker på "send" i form
Avatar billede dennismp Nybegynder
14. april 2004 - 21:08 #6
Så findes rækken ikke.
Avatar billede dennismp Nybegynder
14. april 2004 - 21:09 #7
jeg mener, så må "where id = '$RetUser'" give 0 rækker.

Har du prøvet at smide det hele over i en variable og så printe den ud så du kan se hvad der sker?
Avatar billede dennismp Nybegynder
14. april 2004 - 21:09 #8
fx
    mysql_query($sql = "UPDATE infofirat set
navn = '$_POST[navn]',
brugernavn = '$_POST[brugernavn]',
alder = '$_POST[alder]',
landsdel = '$_POST[landsdel] ,
skole = '$_POST[skole]',
fritid = '$_POST[fritid]',
sport = '$_POST[sport]',
klub = '$_POST[klub]',
farve = '$_POST[farve]',
sang = '$_POST[sang]',
film = '$_POST[film]',
toejstil = '$_POST[toejstil]',
bil = '$_POST[bil]',
druk = '$_POST[druk]',
ryger = '$_POST[ryger]',
civilstatus = '$_POST[civilstatus]',
mail = '$_POST[mail]',
msn = '$_POST[msn]',
image = '$_POST[image]'
where id = '$RetUser'");
print $sql;

(så virker header ikke, men det er en anden sag)
Avatar billede fbb Nybegynder
14. april 2004 - 21:32 #9
Havde glemt en ' i landsdel ;)

Kom lige med et svavr ;) nu virker den ;)
Avatar billede dennismp Nybegynder
14. april 2004 - 21:34 #10
fejlmeddelelser er godt :)
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