2016-06-10 27 views
0

我在提交时更新数据库时遇到小问题。数据库在提交时不更新数值

我在我的数据库中有以下内容: 一个名为iUserCash的varchar。

登录后,我想编辑我的数据库表中的这一行。

的HTML如下:

<form method="post"> 
      <table class="sign_up_form" align="center" width="30%" border="0"> 
      <tr> 
      <td> 
       <input type="text" name="cashBalance" placeholder="Nye beløb"/> 
      </td> 
      <td> 
       <button type="submit" name="btn-update" class="betting-btn">OPDATER</button> 
      </td> 
      <td> 
      </tr> 
      <tr> 
      </tr> 
      </table> 
      </form> 

我的SQL是这样的:

session_start(); 
include_once 'controllers/dbConnect.php'; 

if(!isset($_SESSION['user'])) 
{ 
header("Location: index.php"); 
} 
$res=mysql_query("SELECT * FROM oneusers WHERE iUserId=".$_SESSION['user']); 

$userRow=mysql_fetch_array($res); 

if(isset($_POST['btn-update'])) 
{ 
$ucash = mysql_real_escape_string($_POST['cashBalance']); 

if(mysql_query("UPDATE oneusers SET iUserCash = '$ucash' WHERE iUserId='$res'")) 
{ 
?> 
     <script>alert('successfully registered ');</script> 
     <?php 
} 
else 
{ 
    ?> 
     <script>alert('error while registering you...');</script> 
     <?php 
} 
} 

它返回成功消息就好了,但它只是不进行任何更新。谁能告诉我我做错了什么? :) 在此先感谢。

+1

'$ res'不是一个值,它是一个资源,所以'iUserId ='$ res''没有任何意义。 –

+0

在表单中传递隐藏字段中的iUserId并在更新查询中使用它 – JYoThI

+0

现在不推荐使用原始MySQL扩展,并且在连接到数据库时会生成E_DEPRECATED错误。而是使用MYSQLi或PDO_MySQL扩展。准备好的声明 – JYoThI

回答

1

你有一个错误在

mysql_query("UPDATE oneusers SET iUserCash = '$ucash' WHERE iUserId='$res'") 

您使用$ RE上iUserId但它是一个DB资源...

看来,$ _SESSION [ '用户']是的ID你需要在查询...所以试试它像

mysql_query("UPDATE oneusers SET iUserCash = '$ucash' WHERE iUserId=" . $_SESSION['user']); 
+1

为什么不是这个WHERE iUserId ='“。$ _SESSION ['user']。”' – JYoThI

+0

你怎么知道$ _SESSION ['user']是id?我只是预测。 – tanaydin

+1

你是否看到同一张表'oneusers'和同一个coloumn'iUserId'的名字,他用在这两个查询中,这就是为什么我告诉 – JYoThI