2013-04-28 106 views
-4

我一直在试图更新我的数据库,但它更新,它显示了这样的MySQL的PHP​​查询不更新

通知的ID错误是成功的:用C player_id:未定义的变量\ WAMP \ WWW \ Potifolio \ update_ac.php第4行

成功:波纹管是我的代码请帮助:

me.php

<?php 
include_once("connect.php"); 
$query = "SELECT * FROM players"; 
$result = mysql_query($query,$db); 
?> 
<table><tr> 
<td>Name</td> 
<td>Surname</td> 
<td>Positon</td> 
<td>Email</td> 
<td>Passowrd</td> 
<td>Email</td> 
<td>Action</td> 
</tr> 
<?php 
while($row = mysql_fetch_assoc($result)){ 
?> 
<tr> 
<td><?php echo $row['name'];?></td> 
<td><?php echo $row['surname'];?></td> 
<td><?php echo $row['position'];?></td> 
<td><?php echo $row['password'];?></td> 
<td><?php echo $row['username'];?></td> 
<td><?php echo $row['name'];?></td> 
<td ><a href= "update1.php?player_id=<?php echo $row['player_id'];?>">Update</a></td> 
</tr> 
<?php 
} 
?> 

update1.php

<?php 
include_once("connect.php"); 
$player_id = $_GET['player_id']; 
$query = "SELECT * FROM players where player_id ='$player_id'"; 
$result = mysql_query($query,$db); 
$row = mysql_fetch_assoc($result); 

?> 

<form name = "form1"action="update_ac.php" method ="post"> 
<input type = "text" name="name" value="<?php echo $row['name'];?>"> 
<input type = "hidden" name = "player_id" ID = "player_id" value="<?php echo $row['player_id'];?>" > 
<input type = "submit" name="submit" value="submit"> 
</form> 

update_ac.php

<?php 
include_once('connect.php'); 
$name= $_POST['name']; 
$sql="UPDATE players SET name='$name' WHERE player_id = '$player_id'"; 
$result = mysql_query($sql); 
if($result){ 
echo "Success"; 
}else { 
echo "Error"; 
} 
?> 
+4

您正在使用[**的**过时的数据库API(http://stackoverflow.com/q/12859942/19068),并应使用[现代替代品](http://php.net/manual/en/mysqlinfo.api.choosing.php)。你也**易受[SQL注入攻击](http://bobby-tables.com/)**,现代的API会使[防御]更容易(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己从。 – Quentin 2013-04-28 08:41:53

+3

您需要帮助才能了解错误消息吗?在文件'update_ac.php'的#4行,你正在使用一个名为'$ player_id'的变量,它从无处跳出。这就是你应该首先解决的问题。 – 2013-04-28 08:46:59

+0

重复的http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index – 2013-04-28 08:48:40

回答

1

查询更改这个

$sql="UPDATE players SET name='$name' WHERE player_id = '$_POST['player_id']'"; 

或类似这样的

$player_id = $_POST['player_id']; 
$sql="UPDATE players SET name='$name' WHERE player_id = '$player_id'"; 

你是不是assig在你的情况下将$ _POST ['player_id']的真实价值转换为变量$ player_id。

所以完整的代码应该是这样的

<?php 
include_once('connect.php'); 
if (isset($_POST['submit'])) { 
    $name= $_POST['name']; 
    $player_id = $_POST['player_id']; 
    $sql="UPDATE players SET name='$name' WHERE player_id = '$player_id'"; 
    $result = mysql_query($sql); 
    if($result){ 
     echo "Success"; 
    }else { 
     echo "Error"; 
    } 
} 
?> 
+0

你的答案是足够的,保存我们在社区需要像你这样的人,而不是那些刚刚拜访我们投票给我们的人,感谢下一位 – humphrey 2013-04-28 08:47:13

+1

干杯@humphrey :)。只要你觉得解决了问题,请选择答案。 :) – 2013-04-28 08:55:40

+1

我做了我只是等待7分钟通过 – humphrey 2013-04-28 09:09:30