2016-01-08 3 views
1

У меня две формы на одной странице. Один из них заключается в удалении учетной записи пользователя, а другой - в UPDATE данных пользователей (диета пользователей, если быть точным). Формы используют разные values для своих кнопок отправки, поскольку они представляют собой две формы seperete, где пользователь выбирает только один, а не тот и другой.Почему моя кнопка отправки не работает вместе с инструкцией UPDATE?

Я пытаюсь заставить кнопку отправки моего оператора UPDATE работать, но ничего не происходит, когда вы нажимаете кнопку. Инструкция UPDATE заключается в обновлении идентификатора пользователя dietID в таблице пользователей, хранящейся в моей базе данных MySQL. Я довольно новичок в php, я был бы признателен за любую помощь! код обработки

Форма для обновления диеты для вошедшего в систему пользователя:

<?php 
$sess_userID =$_SESSION['userID']; 
$dietopt = trim($_POST['dietopt']); 
if(trim($_POST['submit']) == "Change") { 
     if (trim($_POST['dietopt']) == 1) { 
      require_once("connect.php"); 
      if (!$db_server) { 
       die("Unable to connect to MySQL: " . mysqli_connect_error($db_server)); 
      } else { 
       mysqli_select_db($db_server, $db_database) or die("<h1>Couldn't find db</h1>"); 
       //UPDATE records of users table 
       $query="UPDATE users SET option= .$option . WHERE ID= $dietopt"; 
       mysqli_query($db_server, $query) or die("Update failed" . mysqli_error($db_server)); 
       header('location: account.php'); 
      } 
      require_once("db_close.php"); 
     } else { 
      //do nothing 
     } 
} 

HTML форма:

Would you like to change what your current diet is? Please select one 
<br> 
<td><input type="radio" name="dietopt" value="Meat-eater"/>Meat-eater</td> 
<tr> 
<td><input type="radio" name="dietopt" value="Vegetarian"/>Vegetarian</td></tr> 
<tr> 
<td><input type="radio" name="dietopt" value="Vegan"/>Vegan</td></tr> 
<br> 
<input type="submit" name="Change" value="Change"> 

На моей странице регистра я следующие переменные созданы:

$dietopt=trim($_POST['dietopt']); 
$_SESSION['diet'] = $diet; 

И код РАБОТЫ для моей формы удаления:

<?php 
$sess_userID = $_SESSION['userID']; 
if (trim($_POST['submit']) == 'submit') { 
    if (trim($_POST['delete']) == 1) { 
     require_once("connect.php"); 
     if (!$db_server) { 
      die("Unable to connect to MySQL: " . mysqli_connect_error($db_server)); 
     } else { 
      mysqli_select_db($db_server, $db_database) or die("<h1>Couldn't find db</h1>"); 
      //DELETE records from comments table 
      $query = "DELETE FROM comments WHERE userID=$sess_userID"; 
      mysqli_query($db_server, $query) or die("Delete 1 failed" . mysqli_error($db_server)); 
      //DELETE record from users table 
      $query = "DELETE FROM users WHERE ID=$sess_userID"; 
      mysqli_query($db_server, $query) or die("Delete 2 failed" . mysqli_error($db_server)); 
      //LOGOUT AND DESTROY SESSION 
      $_SESSION = array(); 
      session_destroy(); 
      header('Location: index.php'); 
     } 
     require_once("db_close.php"); 
    } else { 
     header('location: home.php'); 
    } 
} 

С формой:

<h3><p> Are you sure you want to delete your entire account <?php echo $_SESSION['username'];?>?</p> 
This will remove your username, password and any comments or photos you have uploaded to our Community forum. We promise to delete all of your details and we will not store or sell your information.</h3> 
<form action="account.php" method="post"> 
Yes:<input type="radio" name="delete" value="1" /><br /> 
No: <input type="radio" name="delete" value="0" checked="checked" /><br /> 
<input type="submit" name="submit" value="submit" /> 
</form> 
+0

Неправильного состояние '$ _POST ['submit']) ==" Изменить ")' потому что ваше имя поля 'name =" Изменить "' – Saty

+0

Также неверно в запросе обновления синтаксиса 'query =" UPDATE users SET option =. $ Option. WHERE ID = $ dietopt "; ' – Saty

+0

Еще одно замечание: 'if (trim ($ _ POST ['dietopt']) == 1) {' это никогда не будет 1 .. – Naruto

ответ

1

Это происходит потому, что вы не имеете элемента формы в вашем HTML коде Вашей Форме

Would you like to change what your current diet is? Please select one 
<br> 
<form action="your-action-page.php" method="post"> 
<td><input type="radio" name="dietopt" value="Meat-eater"/>Meat-eater</td> 
<tr> 
<td><input type="radio" name="dietopt" value="Vegetarian"/>Vegetarian</td> 
</tr>   
<tr> 
<td><input type="radio" name="dietopt" value="Vegan"/>Vegan</td></tr> 
<br> 
<input type="submit" name="Change" value="Change"> 
</form> 

Обработка Страницы

<?php 
$sess_userID =$_SESSION['userID']; 
$dietopt = trim($_POST['dietopt']); 
if(trim($_POST['submit']) == "Change") { 
    if ($_POST['dietopt'] == 1) { 
     require_once("connect.php"); 
     if (!$db_server) { 
      die("Unable to connect to MySQL:".mysqli_connect_error($db_server)); 
     } else { 
      mysqli_select_db($db_server, $db_database) or die("<h1>Couldn't find db</h1>"); 
      //UPDATE records of users table 
      $query="UPDATE users SET option='".$option."' WHERE ID= ".$sess_userID; 
      mysqli_query($db_server, $query) or die("Update failed" . mysqli_error($db_server)); 
      header('location: account.php'); 
     } 
     require_once("db_close.php"); 
    } else { 
     //do nothing 
    } 
} 
+0

Спасибо. Я добавил это, но ничего не обновил в базе данных mysql. – clh

+0

изменить WHERE ID = ". $ Dietopt; WHERE ID =". $ Sess_userID; в вашем запросе –

+0

Нет, это тоже не сработало. Я ценю, что вы помогаете мне – clh

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