2013-04-28 2 views
-4

Я пытался обновить свою базу данных, но не обновляет, и это показывает успех с ошибкой ид, как этотMySQL PHP запрос не обновляет

Notice: Undefined переменной: player_id в C: \ WAMP \ WWW \ Potifolio \ update_ac.php в строке 4

Success: ниже мой код, пожалуйста, помогите:

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

+3

Вам нужна помощь, чтобы понять сообщение об ошибке? На строке # 4 файла 'update_ac.php' вы используете переменную с именем' $ player_id', которая появляется из ниоткуда. Это то, что вы должны исправить первым. –

+0

Дубликат http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index –

ответ

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

+1

Cheers @humphrey :). Просто отметьте ответ, если почувствуете, что он разрешен. :) –

+1

Я только что ждал 7 минут, чтобы пройти – humphrey