2014-02-05 2 views
0

я не могу найти решение этой проблемы, и я искал аналогичные нити тоже, но не повезPHP/HTML форма не обновляется MySQL

В основном здесь не мой код, при нажатии кнопки Обновить это означали для отображения ваше текущее имя в полях формы, вы можете перезаписать их и внести изменения, однако, к сожалению, он не будет обновляться, он отображает первоначально заданное имя и фамилию и не обновляет базу данных, поэтому не отображает новые имена наборов.

<?php 
include('../connect_db.php'); 

$res = mysqli_query($dbconnection, "SELECT * FROM users"); 
$row = mysqli_fetch_array($res); 


if(isset($_POST['newFirst']) && isset($_POST['newLast'])){ 
    $newFirst = $_POST['newFirst']; 
    $newLast = $_POST['newLast']; 
    $id = $_POST['id']; 
    $sql = "UPDATE users SET first_name='$newFirst', last_name='$newLast' WHERE id='$id'"; 
    $res = mysqli_query($dbconnection, $sql); 
} 

?> 

<div id="editSection"> 
<h3>Edit Details</h3> 

<form action="edit_profile.php" method="POST"> 

<input type="hidden" value="<?php echo $row[0];?>" name="id"/> 

<h2>First Name</h2> 
<input type="text" name="newFirst" value="<?php echo $row[1];?>"> 

<h2>Last Name</h2> 
<input type="text" name="newLast" value="<?php echo $row[2];?>"> 

<input type="submit" value="Update"> 

</form> 


</div> 

Любая помощь будет принята с благодарностью :)

С наилучшими пожеланиями

~ Matt

+0

Пожалуйста, не изменяйте код, основанный на ответах, это делает их бесполезными. Вместо этого принимайте ответ, который поможет вам. –

+0

@MarcelBalzer это не позволило мне опубликовать сообщение с изменениями, которые все еще заставляли его не работать, поэтому я обновил его по этой причине. –

+0

ОК, тогда попробуйте посмотреть на значение return mysqli_error() или mysqli_errno() –

ответ

0

Вы должны подключиться к БД, прежде чем использовать updating.so

$con=mysqli_connect("localhost","my_user","my_password","my_db"); 

Есть несколько других ошибок, как вы должны сделать $POST['newFirst'] как $_POST['newFirst'] вот так

if(isset($_POST['newFirst']) && isset($_POST['newLast'])){ 

И изменить запрос к

$sql = "UPDATE users SET first_name='$newFirst',last_name='$newLast' WHERE id= '$id'"; 

beacuse у вас есть ошибка в конце запроса id='first_name='$id' что неправильно

+0

Спасибо, человек, только что обновил его, но у меня все еще возникают проблемы с его обновлением, соединение находится внутри верхнего уровня, чтобы сохранить необходимость переписывать его каждый раз. Он определенно соединяется, потому что он втягивает текущие имена во входные значения. –

+0

попробуйте распечатать '$ res' и посмотреть, что он отображает. если он отображает 0, тогда проблема в вашем запросе в противном случае нам нужно проверить php-кодирование – krishna

+0

Я сделал print_r, и я получаю «mysqli_result Object()» –

0

Я вижу некоторые ошибки в запросе

$sql = "UPDATE users SET first_name='$newFirst', 
last_name='$newLast' WHERE id='first_name='$id'"; 

должен быть

$sql = "UPDATE users SET first_name='$newFirst', 
last_name='$newLast' WHERE id= '$id'"; 

также

if(isset($POST['newFirst']) && isset($POST['newLast'])){ 

должен быть

if(isset($_POST['newFirst']) && isset($_POST['newLast'])){ 
+0

Thank вы, я только что обновил сообщение до изменений, и у меня все еще есть проблемы, любая идея? –

+0

Попробуйте, если (! $ Res) {printf ("Errormessage:% s \ n", mysqli_error ($ dbconnection)); }, это скажет u, если u имеет некоторую ошибку в запросе. –

+0

Ничего не найдено, ошибок не было. –

0

Вы используете $POST неправильно в вашем if-состоянии.

Его следует называть $_POST[..].

Также вы должны взглянуть на свой WHERE в своем запросе на обновление.

Я думаю, что вы имеете в виду: WHERE id= '$id'

+0

Спасибо! Я только что отредактировал сообщение об изменениях, и у меня все еще есть проблемы, любая идея? –

0

Вы должны получить свой идентификатор от $ _POST [ 'ID']; который является вашим идентификатором строки, я предполагаю, а также запрос на обновление должен быть где id = $ id.

$id = $_POST['id']; 
$sql = "UPDATE users SET first_name='$newFirst', last_name='$newLast' WHERE id=$id"; 

Также вы проверили в БД после обновления? строка [0], строка [1], строка [2] будут иметь старый набор значений, используемых во время выбора, до того, как произойдет обновление. у вас есть mysqli_fetch_array ($ res) после вызова обновления?

+0

Спасибо! Я только что отредактировал сообщение об изменениях, и у меня все еще есть проблемы, любая идея? –

+1

id = '$ id' он должен быть id = $ id Надеюсь, это поможет –

+0

Пробовал этого человека, не успел, все еще не обновлялся –

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