Avatar billede arkanoid Nybegynder
26. december 2004 - 23:36 Der er 8 kommentarer og
1 løsning

PHP vil ikke opdatere en tabel

Jeg er ikke sikker på, om det her skal postes her, eller under MySQL, men nu starter jeg her.

Jeg har et prblem med dette stykke kode: http://fantasyzone.dk/edit_article.txt

Det burder opdatere dta i tabellerne, men der sker ingenting... den siger godt nok, at den har opdateret ($output er sat til "Anmeldelsen er opdateret"... osv.) men i praksis er der ingen ændring, når man kigger på dataerne efterfølgende.

Gode idéer? Anyone?
Avatar billede coderdk Praktikant
26. december 2004 - 23:44 #1
Denne linje giver ingen mening:

if (($title != "")&&(!isset($title))){

Hvis titlen IKKE er tom OG titlen IKKE er sat? :)
Jeg tror du kan bruge denne i stedet:

if ( !empty( $title ) ) {

Og så bør du nok ændre dine:

WHERE ID='$id'

til

WHERE ID='$idu'

eller sætte $id til $_REQUEST['id'] og lade være at bruge $idu ;)
Avatar billede coderdk Praktikant
26. december 2004 - 23:50 #2
Det er heller ikke optimalt at rette en ting ad gangen - ikke godt for performance, saml det hele i én update:

$upd = array();
if ( !empty( $title ) )
{
  $upd[] = " title = '$title' "
}
if ( !empty( $category ) )
{
  $upd[] = " category = '$category' "
}
if ( !empty( $rate ) )
{
  $upd[] = " rate = '$rate' "
}
if ( !empty( $manchet ) )
{
  $upd[] = " manchet = '$manchet' "
}
if ( !empty( $avatar ) )
{
  $upd[] = " avatar = '$avatar' "
}
if ( !empty( $article ) )
{
  $upd[] = " article = '$article' "
}
if ( $update_timestamp == 'yes' )
{
  $upd[] = " date = '$newsdate' "
}
$upd = explode( ", ", $upd );
$sql = "UPDATE article SET $upd WHERE id = $idu";

(eller id = $id hvis du har rettet det)
Avatar billede coderdk Praktikant
26. december 2004 - 23:51 #3
der mangler en masse ; efter heheh sådan går det når man bare skriver - det er også svært at overskue i det lille bitte tekstarea der er på eksperten ;P
Avatar billede arkanoid Nybegynder
27. december 2004 - 15:46 #4
Hej igen....
Jeg har rettet som du foreslog, (også til $_REQUEST) men nu returnerer den følgende MySQL syntaks fejl:
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 'WHERE ID=1' at line 1

Den kode jeg har brugt:
$id = $_REQUEST['id'];
if (($id != "")||($idu != "")){
$update = $_POST['update'];
if ($update == "true"){
 
  ////////////////////
  //                //
  // Update article //
  //                //
  ////////////////////
 
  $title = $_POST['title'];
  $update_timestamp = $_POST['update_timestamp'];
  $category = $_POST['category'];
  $rate = $_POST['rating'];
  $manchet = $_POST['manchet'];
  $avatar = $_POST['avatar'];
  $article = $_POST['article'];
 
  $upd = array();
  if (!empty($title)){
  $upd[] = " title='$title'";
  }
  if (!empty($category)){
  $upd[] = " category='$category' ";
  }
  if (!empty($rate)){
  $upd[] = " rate='$rate' ";
  }
  if (!empty($manchet)){
  $upd[] = " manchet='$manchet' ";
  }
  if (!empty($avatar)){
  $upd[] = " avatar='$avatar' ";
  }
  if (!empty($article)){
  $upd[] = " article='$article' ";
  }
  if ($update_timestamp == 'yes'){
  $newdate = date("d/m-Y");
  $upd[] = " date='$newdate' ";
  }

  $upd = explode(",",$upd);
  $sql = "UPDATE article SET $upd WHERE ID=$id";
  mysql_query($sql) or die(mysql_error());
  print "Anmeldelsen er rettet";
}

Jeg har prøvet at omgive $id med '', men det gør ingen forskel. Der _skal_ stå WHERE ID= da feltet i tabellen skrives med store bogstaver.
Avatar billede coderdk Praktikant
27. december 2004 - 15:50 #5
prøv lige at lave en echo $sql før mysql_query og post hvad den skriver ;)
Avatar billede arkanoid Nybegynder
27. december 2004 - 15:53 #6
UPDATE article SET Array WHERE ID=1
Avatar billede coderdk Praktikant
27. december 2004 - 15:55 #7
DOH! Min fejl!

$upd = explode(",",$upd);

rettes til:

$upd = implode(",",$upd);
Avatar billede arkanoid Nybegynder
27. december 2004 - 16:30 #8
mange tak... nu virker det, smid lige et svar
Avatar billede coderdk Praktikant
27. december 2004 - 16:43 #9
Ok :)
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