Avatar billede mads2008 Nybegynder
28. maj 2009 - 00:09 Der er 9 kommentarer og
1 løsning

PHP edit vil ikke opdatere mysql

Hvorfor vil den ikke opdatere row "henvisning" i mysql?

Det er rimeligt simpelt og det virker fint på en anden server.

Jeg får absolut ingen fejlmeddelelse.


<?
mysql_connect("localhost","username","password");
mysql_select_db("my_db");


if(!isset($cmd))
{
  $result = mysql_query("select * from henvisning order by id");
 
  //loop
  while($r=mysql_fetch_array($result))
  {
      $hold=$r["hold"];
      $id=$r["id"];
   
      echo "$hold - <a href='editHenvisning.php?cmd=edit&id=$id'>Edit</a>";
      echo "<br>";
    }
}
?>
<?
if($_GET["cmd"]=="edit" || $_POST["cmd"]=="edit")
{
  if (!isset($_POST["submit"]))
  {
      $id = $_GET["id"];
      $sql = "SELECT * FROM henvisning WHERE id=$id";
      $result = mysql_query($sql);       
      $myrow = mysql_fetch_array($result);
      ?>
     
      <form action="editHenvisning.php" method="post">
      <input type=hidden name="id" value="<?php echo $myrow["id"] ?>">
 
      Title:<INPUT TYPE="TEXT" NAME="hold" VALUE="<?php echo $myrow["hold"] ?>" SIZE=30><br>
      Title:<INPUT TYPE="TEXT" NAME="dato" VALUE="<?php echo $myrow["dato"] ?>" SIZE=30><br>
      Title:<INPUT TYPE="TEXT" NAME="start" VALUE="<?php echo $myrow["start"] ?>" SIZE=30><br>
      Title:<INPUT TYPE="TEXT" NAME="slut" VALUE="<?php echo $myrow["slut"] ?>" SIZE=30><br>
 
      <input type="hidden" name="cmd" value="edit">
 
      <input type="submit" name="submit" value="submit">
 
      </form>
 
<? } ?>
<?
  if ($_POST["$submit"])
  {
      $hold = $_POST["hold"];
      $dato = $_POST["dato"];
      $start = $_POST["start"];
      $slut = $_POST["slut"];
      $sql = "UPDATE henvisning SET hold='$hold',dato='$dato',start='$start',slut='$slut' WHERE id=$id";
      $result = mysql_query($sql) or die(mysql_error() . '<br />' . $sql);
      {
header("Location: " . $_SERVER['php_SELF']);
}
    echo " opdateret.";
    }
}
?>
Avatar billede Syska Mester
28. maj 2009 - 05:50 #1
sikkert forskellige php settings.

Har du kigget i din apache/iis log ?

Er du sikker på at du får udskrevet fejl på det andet hotel og at de ikke kun kommer i httpd loggen på serveren ?

// ouT
Avatar billede majbom Novice
28. maj 2009 - 06:39 #2
er du sikker på at den kommer ind i din

if ($_POST["$submit"])

?
Avatar billede mads2008 Nybegynder
28. maj 2009 - 10:01 #3
Jeg bør nok indledningsvis skrive at jeg er grafiker og webdesigner.
Script/prog/php-syntax termer kender jeg kun til husbehov+. 

Buzzzz: Jeg har ikke kigget i apache log ...hvor finder jeg den? Bare sådan ca? :o)

splazz: Jeg er faktisk ikke rigtigt sikker på noget? Jeg ved bare det samme virker på en anden server.

Platform: Apache/2.0.54 (Debian GNU/Linux) mod_python/3.1.3 Python/2.3.5 PHP/4.3.10-19 mod_ssl/2.0.54 OpenSSL/0.9.7e

MySQL information: Alle privilegier er ok, se DB layout -> img-link herunder.

[img]http://www.ungecoach.dk/screenshot_01.jpg/img]
Avatar billede mads2008 Nybegynder
28. maj 2009 - 10:22 #4
Avatar billede zkill Nybegynder
28. maj 2009 - 10:30 #5
haha..
fejlen er her:

<?
  if ($_POST["$submit"])
  {
      $hold = $_POST["hold"];
      $dato = $_POST["dato"];
      $start = $_POST["start"];
      $slut = $_POST["slut"];
      $sql = "UPDATE henvisning SET hold='$hold',dato='$dato',start='$start',slut='$slut' WHERE id=$id";
      $result = mysql_query($sql) or die(mysql_error() . '<br />' . $sql);
      {
header("Location: " . $_SERVER['php_SELF']);
}
    echo " opdateret.";
    }


Du kalder $_POST["$submit"])
Men din variabel hedder altså kun submit og ik $submit..
så ændre den til $_POST["submit"]) så sku det virke..
Avatar billede zkill Nybegynder
28. maj 2009 - 10:34 #6
plus godt råd...
Alle variabler du henter fra et tekst felt.. selvom du selv skriver teksten.. burde du bruge 'mysql_escape_string($tekst)' rundt om.. For at undgå du f.eks. laver en ' eller \

$hold = mysql_escape_string($_POST["hold"]);
$dato = mysql_escape_string($_POST["dato"]);
$start = mysql_escape_string($_POST["start"]);
$slut = mysql_escape_string($_POST["slut"]);
Avatar billede mads2008 Nybegynder
28. maj 2009 - 10:39 #7
zkill: Langt ude, nu virker det hele. Takker 100000000 gange.

Svar, så får du cigar :o)
Avatar billede majbom Novice
28. maj 2009 - 11:11 #8
hehe,den havde jeg sq overset :s
Avatar billede majbom Novice
28. maj 2009 - 11:11 #9
og jeg havde endda copy/pastet koden - fuck det er ringe! hehe
Avatar billede zkill Nybegynder
28. maj 2009 - 21:20 #10
så lidt..
Og jah... det tit sådan nogle små fejl.. :)
Men som en af de andre skrev.. altid lav et tjek om du kommer ind i din if-sætning.. for så ved du hvor du skal lede efter din fejl.. :)
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