2013-05-17 2 views
0

Im tryng для обновления таблицы на основе действия пользователя, пожалуйста, помогите, Когда я отправляю запрос nothng, если пользователь выбирает редактирование, он должен обновить таблицу, что я делаю неправильно?Таблица обновлений, основанная на действии пользователя

if ($action == "edit"){ 


$edit = $_POST['edit']; 
$first_name = $_POST['first_name']; 
$last_name = $_POST['last_name']; 
$email = $_POST['email']; 


$sql=mysql_query("select * from user where id='$id'"); 

    while ($row=mysql_fetch_array($sql)) 
{                                                              
$id = $row['id']; 
$first_name = $row['first_name']; 
$last_name = $row['last_name']; 
$email = $row['email']; 

$result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id='$id'"); 


echo("<form name='edit' method='post' action='?action=edit'>"); 
echo("<input type='hidden' name='?action=edit'>"); 
echo("<table class=main cellspacing=0 cellpadding=5 >"); 
echo("<tr><td>Name: </td><td align='right'><input type='text' name='first_name' value='$first_name'></td></tr>"); 
echo("<tr><td>Surname: </td><td align='right'><input type='text' name='last_name' value='$last_name'></td></tr>"); 
echo("<tr><td>Email: </td><td align='right'><input type='text' name='email' value='$email'></td></tr>"); 
echo("<tr><td></td><td><div align='right'><input type='submit'></div></td></tr>"); 
echo("</table>"); 
    }  
     } 
+0

1. где вы устанавливаете $ action 2. эхом все, что html плохо на глаза – user20232359723568423357842364

+0

где вы получаете '$ id'? – Yogus

+0

'$ id' не задан до того, как ваш первый запрос будет запущен, а второй не будет запущен. – sbeliv01

ответ

0

Вы обновляете свою базу данных с результатами, которые вы тянущих в

Вам необходимо обновить базу данных, прежде чем выбрать строку:.

Пара примечаний: Вы не установите id в вашей форме (возможно, сделайте скрытый ввод). Самая большая проблема, которую я вижу, заключается в том, что вы не изначально устанавливаете ID (т. Е. Когда нет данных $ _POST).

Additionallly, вы должны использовать PDO или mysqli

if($_POST){ 
    $id = $_POST['id']; 
    $edit = $_POST['edit']; 
    $first_name = $_POST['first_name']; 
    $last_name = $_POST['last_name']; 
    $email = $_POST['email']; 
    $result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id='$id'"); 
} 

$sql=mysql_query("select * from user where id='$id'"); 

while ($row=mysql_fetch_array($sql)){            
    $id = $row['id']; 
    $first_name = $row['first_name']; 
    $last_name = $row['last_name']; 
    $email = $row['email']; 


    echo("<form name='edit' method='post' action='?action=edit'>"); 
    echo("<input type='hidden' name='?action=edit'>"); 
    echo("<table class=main cellspacing=0 cellpadding=5 >"); 
    echo("<tr><td>Name: </td><td align='right'><input type='text' name='first_name' value='$first_name'></td></tr>"); 
    echo("<tr><td>Surname: </td><td align='right'><input type='text' name='last_name' value='$last_name'></td></tr>"); 
    echo("<tr><td>Email: </td><td align='right'><input type='text' name='email' value='$email'></td></tr>"); 
    echo("<tr><td></td><td><div align='right'><input type='submit'></div></td></tr>"); 
    echo("</table>"); 
} 
+0

У меня есть r ref, который будет проверять, будет ли $ action == edit Edit Вот почему я помещаю if ($ action == "edit") {поверх кода ... – Sizwe

0

вы должны проверить погоду формы посылается пользователем

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    $id = $_POST['id']; 
    $edit = $_POST['edit']; 
    $first_name = $_POST['first_name']; 
    $last_name = $_POST['last_name']; 
    $email = $_POST['email']; 
    $result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id='$id'"); 
} 

Также проверьте вашу безопасность, использование mysql_real_escape_string

также вы можете увеличить свои чеки, проверить, нажата ли кнопка отправки и т. д.

Смежные вопросы