2014-10-17 3 views
0

MYSQL을 처음 사용했습니다.테이블은 업데이트되지 않지만 성공적으로 표시됩니다.

데이터베이스를 업데이트하려고하면 결과가 성공적으로 표시되지만 항목이 표시되지 않습니다. 제발 도와 줄 수 있어요. 게시물을 세션 변수로 바꾸어서 가져 왔지만 차이는 없습니다.

update_ac.php

   $name = $_POST['name']; 
      $lastname = $_POST['review']; 

      // Connect to server and select database. 
      mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
      mysql_select_db("$db_name")or die("cannot select DB"); 

      // update data in mysql database 
      $sql="UPDATE reviews SET name='$name', review='$lastname' WHERE id='$id'"; 
      $result=mysql_query($sql); 

      // if successfully updated. 
      if($result){ 
      echo "Successful"; 
      echo "<BR>"; 
      echo "<a href='list_reviews.php'>View result</a>"; 
      } 

      else { 
      echo "ERROR"; 
      echo "Welcome ". $_POST['name']. "<br />"; 
      echo $lastname; 
      } 

      ?> 

update.php

   // Connect to server and select database. 
      mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
      mysql_select_db("$db_name")or die("cannot select DB"); 

      // get value of id that sent from address bar 
      $id=$_GET['id']; 

      // Retrieve data from database 
      $sql="SELECT * FROM $tbl_name WHERE id='$id'"; 
      $result=mysql_query($sql); 

      $rows=mysql_fetch_array($result); 
     ?> 

     <?php include "includes/header.php"; ?> 
       <div id="bodywrap"> 
        <div id="leftcol"> 
        <h1>Update the form</h1> 

     <form name="form1" method="post" action="update_ac.php"> 
     <label>Name</label> 
     <input name="name" type="text" id="name" value="<? echo $rows['name']; ?>"> 
     <br /> 
     <label>Review</label> 
     <input name="lastname" type="text" id="lastname" value="<? echo $rows['review']; ?>" size="15"> 
     <br /> 
     <input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>"> 
     <br /> 
     <input type="submit" name="Submit" value="Submit"> 
     </form> 

     <?php 
     // close connection 
     mysql_close(); 
     ?> 
+0

어디 $ tbl_name를 SET입니다 곧 중단 될 예정입니다? – Ali

+4

[다음은 mysql_ * 함수를 계속 사용할 때의 예입니다.] (http://stackoverflow.com/questions/26299564/php-version-upgraded-cannot-use-few-functions) [준비된 진술] (http://en.wikipedia.org/wiki/Prepared_statement) 대신 [PDO] (http://us1.php.net/pdo) 또는 [MySQLi] (http : // us1. php.net/mysqli). [이 기사] (http://php.net/manual/en/mysqlinfo.api.choosing.php)를 사용하면 결정하는 데 도움이됩니다. –

+0

+1 ~ 제이. $ id가 설정 한 내용을 게시 해보십시오. – Vertig0

답변

1
$name = $_POST['name']; 
$lastname = $_POST['review']; 

당신은 당신이 $ ID와 없습니다 $ _POST [ 'ID'] 또는 $ _REQUEST [ 'ID를'사용주의 했는가 ] 또는 $ _GET [ 'id']? 누락 된 항목 :

$id = $_POST['id']; 

SQL은 모든 ID에서 업데이트를 수행했기 때문에 작동 했으므로 오류가 아닙니다. 다른 사람들이 지적

또한, 사용 mysqli, MySQL의 확장은 위험하며 아마

+0

이전 MySQL 확장은 PHP 5.5.0부터는 더 이상 사용되지 않습니다. 새로운 프로젝트는 mysqli 또는 PDO를 사용해야합니다 (필자는 PDO를 선호합니다). http://php.net/manual/en/mysqlinfo.api.choosing.php를 참조하십시오. –

+0

약 5 년간 mysql 확장을 사용하지 않으므로 사용되지 않거나 p가 아닐 경우 실제로 따르지 않습니다. 그래도 여전히 레거시 서버에서 지원하고 있습니다. 이제는 그 것을 버릴 수 있습니다. –

+0

예, 레거시 애플리케이션에서 비추천 확장 기능을 사용하기가 어려울 것입니다. 그 이유만으로도 수백만 줄의 코드를 다시 작성할 필요가 없습니다. 그러나 새로운 프로젝트를위한 새로운 확장으로 전환해야합니다. –

관련 문제