2012-09-22 72 views
-3

我試圖更新everyting似乎是在查詢正確的數據庫記錄,但查詢不執行.... IM厭倦了這裏的概率低於 是我的代碼... .......所有的Mysql的更新查詢不能

<table width="409"> 

     <tr> 
     <td><div align="right">Select Category</div></td> 
     <td><select name="cat"> 
     <option value="0">--Select a Category--</option> 

     <?php 
     $qry=mysql_query("Select * from categories"); 

    while($data=mysql_fetch_array($qry)) 
      { 
     echo "<option value=".$data['catid'].">".$data['catname']."</option>"; 

      } 
     ?> 


     </select></td> 
     </tr> 








     <tr> 
     <td width="148"><div align="right">Category Name</div></td> 
     <td width="142"><input type="text" name="cname" /></td> 
     </tr> 

     <tr> 
    <td><div align="right">Category Discription</div></td> 
    <td><input type="text" name="cdescp" /></td> 
     </tr> 

    <tr> 
    <td><div align="right">Category Status</div></td> 
    <td><input type="text" name="cstatus" /></td> 
    </tr>  
    <tr> 
    <td><div align="right"></div></td> 
    <td><input type="submit" name="addcat" value="Update Category" /> <input type="reset" /></td> 
    </tr> 
     </table> 

     </form> 
     <?php 

     if(isset($_POST['addcat'])) 
     { 
      $catid=$_POST['cat']; 
      echo $catid; 
      $cnamei=$_POST['cname']; 
      $cdescpr=$_POST['cdescp']; 
      $cstat=$_POST['cstatus']; 

    $sql=mysql_query("Update categories SET catname=$cnamei,catdescr=$cdescpr, catstat=$cstat where catid=$catid"); 

     echo $sql; 





      if($sql) 
      { 
      echo "<script>alert('Category Sucessfully Edited');</script>"; 
       } 



      } 

     ?> 
+1

脫離主題但重要;請注意'mysql_xxx()'函數已經過時。它們已被'mysqli_xxx()'funcs取代,並且PHP手冊**強烈建議切換。舊的funcs很可能會被棄用,並會從未來版本的PHP中刪除。 – Spudley

回答

1
$sql = mysql_query("UPDATE categories SET catname='".mysql_real_escape_string($cnamei)."',catdescr='".mysql_real_escape_string($cdescpr)."', catstat='".mysql_real_escape_string($cstat)."' where catid=".$catid) or die(mysql_error()); 
+0

嘿它的工作原理,你可以解釋一下我這個解決方案是如何工作的,爲什麼我的查詢是不工作..................... – hanzalah

+2

@hanzalah你必須用引號之間的字符串。 'catname = $ catname'應該是'catname ='$ catname''。 Ozerich還增加了'mysql_escape_string',這是安全的事情。 –

+0

非常感謝好友.............哎 – hanzalah

0

首先,你應該括在報價的SQL查詢您的字符串變量。

假設$cnamei, $cdescpr, and $cstat是字符串和$catid是一個整數,查詢就會像:

"Update categories SET catname='$cnamei',catdescr='$cdescpr', catstat='$cstat' where catid=$catid" 

不要使用mysql_*功能 - 它們已被棄用。改用MySQLi或PDO。

+0

我已經看到了PDO的一些教程,但其相當混亂...... u能爲我提供的方便PDO教程的鏈接... ...... – hanzalah

+0

肯定.. [PDO](http://net.tutsplus.com/tutorials/php/php-database-access-are-you-doing-it-correctly/)這是在那裏我學到PDO從..! –

+0

感謝好友............... – hanzalah