Помощник
|
UPDATE таблиц mysql из php |
ganerals |
28.12.2012, 17:41;
Ответить: ganerals
Сообщение
#1
|
|
у меня очень похожая проблема уже 4 часа бьюсь и никак не пойму почему не работает UPDATE , всмысле в базе ничего не обновляется, выводит "Не удалось" и все, никаких ошибок :(
[PHP] <?php //require_once('login.php'); //header('Refresh:0 url=http://test1.ru/project1/editprofile.php') require_once('appvars.php'); require_once('connectvars.php'); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="style1.css" /> <i>Вы зашли в приложение как <?echo $username;?></i><br><br> </head> <body> <strong>Редактирование профиля</strong><br><br> Персональная информация:<br><br> <form method="POST" enctype="multipart/form-data" name="editprofile" action="editprofile.php"> <table> <tr><td><label for="lastname">Фамилия: </label></td> <td><input type="text" name="lastname" id="lastname"></td></tr> <tr><td><label for="firstname">Имя: </label></td> <td><input type="text" name="firstname" id="firstname"></td></tr> <tr><td><label for="gender">Пол: </label></td> <td><input type="text" name="gender" id="gender"></td></tr> <tr><td><label for="birthdate">Дата рождения: </label></td> <td><input type="text" name="birthdate" id="birthdate"></td></tr> <tr><td><label for="city">Город: </label></td> <td><input type="text" name="city" id="city"></td></tr> <tr><td><label for="country">Страна: </label></td> <td><input type="text" name="country" id="country"></td></tr> <tr><td><label for="foto">Фотография: </label></td> <td><input type="file" name="foto" id="foto"></td></tr> </table><br> <input type="submit" name="submit" value="Сохранить изменения"> </form> <br><a href="viewprofile.php?username='.$row['username'].'&"> Перейти в свой профиль</a> </body> </html> <?php $dbc=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME)or die('Нет соединения'); mysqli_query($dbc,"SET NAMES 'utf8'"); if(isset($_POST['submit'])){ $lastname=mysqli_real_escape_string($dbc,trim($_POST['lastname'])); $firstname=mysqli_real_escape_string($dbc,trim($_POST['firstname'])); $gender=mysqli_real_escape_string($dbc,trim($_POST['gender'])); $birthdate=mysqli_real_escape_string($dbc,trim($_POST['birthdate'])); $city=mysqli_real_escape_string($dbc,trim($_POST['city'])); $country=mysqli_real_escape_string($dbc,trim($_POST['country'])); $foto=mysqli_real_escape_string($dbc,trim($_POST['foto'])); if(isset($lastname)&& isset($firstname)&& isset($gender) && isset($birthday)&& isset($city)&& isset($country)){ $query1="UPDATE mismatch_user SET first_name='$firstname',last_name='$lastname', gender='$gender',birthdate='$birthdate',city='$city',country='$country' WHERE user_id='10'"; mysqli_query($dbc,$query1)or die('Не удалось выполнить запрос'); echo'Изменения сохранены'; }else{echo'не удалось';} } mysqli_close($dbc); ?> [/PHP] |
|
|
Muxa_hb |
28.12.2012, 22:18;
Ответить: Muxa_hb
Сообщение
#2
|
|
|
|
|
ganerals |
29.12.2012, 10:39;
Ответить: ganerals
Сообщение
#3
|
|
[PHP]mysqli_query($dbc,$query1) or die( 'Не удалось выполнить запрос. Ошибка: ' . mysql_error($dbc) . '<br>Запрос: ' . $query1 );[/PHP] Я изменил на Ваш вариант, но ошибки в этом месте у меня нет. Выполняется вот это:[PHP]}else{echo'не удалось';}[/PHP] код до else не выполняется. Названия столбцов раз 10 проверял -ошибки нет . Вообщем ХЗ :( p.s. пользуюсь Denwer -ом |
|
|
Muxa_hb |
29.12.2012, 11:15;
Ответить: Muxa_hb
Сообщение
#4
|
|
[PHP]$lastname=mysqli_real_escape_string($dbc,trim($_POST['lastname'])); ****$firstname=mysqli_real_escape_string($dbc,trim($_POST['firstname'])); ****$gender=mysqli_real_escape_string($dbc,trim($_POST['gender'])); ****$birthdate=mysqli_real_escape_string($dbc,trim($_POST['birthdate'])); ****$city=mysqli_real_escape_string($dbc,trim($_POST['city'])); ****$country=mysqli_real_escape_string($dbc,trim($_POST['country'])); ****$foto=mysqli_real_escape_string($dbc,trim($_POST['foto']));[/PHP] значит какое то из этих сообщений - NULL. И кстати, да, isset поддерживает передачу нескольких аргументов.. [PHP]if(isset($lastname)&& isset($firstname)&& isset($gender) ************&& isset($birthday)&& isset($city)&& isset($country)){[/PHP] [PHP]if(isset($lastname, $firstname, $gender, $birthday, $city, $country)){[/PHP] |
|
|
ganerals |
29.12.2012, 12:03;
Ответить: ganerals
Сообщение
#5
|
|
значит какое то из этих сообщений - NULL. И кстати, да, isset поддерживает передачу нескольких аргументов.. [PHP]if(isset($lastname, $firstname, $gender, $birthday, $city, $country)){[/PHP] Вот я дуралей,вот я слепой крот :wacko:( , только благодаря Вам и PhpStorm -у, установленному на другом компе, нашел ошибку в имени переменной $birthday. Muxa, очень извиняюсь за отнятое у Вас время. p.s. PhpStorm рулит :goodpost: |
|
|
Muxa_hb |
29.12.2012, 12:35;
Ответить: Muxa_hb
Сообщение
#6
|
|
P.S. используйте лучше prepared statements, во-первых, код сократится порядочно, а во вторых, насколько я помню, подготовленные выражения предпочтительнее, т.к. обрабатываются на серверной стороне, а не на клиентской (как .._escape_string()). Если я конечно не ошибаюсь в чем-то :)
P.S. Placeholders рулят :hihi: |
|
|
Lansdorf |
15.1.2013, 17:22;
Ответить: Lansdorf
Сообщение
#7
|
|
|
Здравствуйте, решил воспользоваться кодом из Урока практического применения PHP+MySQL шаг 7, где показана реализация редактирования и изменения данных в базе вот код:
[PHP]<? /* Соединяемся с базой данных */ $hostname = "localhost"; // название/путь сервера, с MySQL $username = "root"; // имя пользователя (в Denwer`е по умолчанию "root") $password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым) $dbName = "test_base"; // название базы данных /* Таблица MySQL, в которой хранятся данные */ $table = "test_table"; /* Создаем соединение */ mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение"); /* Выбираем базу данных. Если произойдет ошибка - вывести ее */ mysql_select_db($dbName) or die (mysql_error()); /* Если была нажата кнопка редактирования, вносим изменения */ if(@$submit_edit) { $query = "UPDATE $table SET name='$test_name', email='$test_mail', theme= '$test_theme', message='$test_mess' WHERE id='$update'"; /* Выполняем запрос. Если произойдет ошибка - вывести ее. */ mysql_query($query) or die (mysql_error()); } /* Заносим в переменную $res всю базу данных */ $query = "SELECT * FROM $table"; /* Выполняем запрос. Если произойдет ошибка - вывести ее. */ $res = mysql_query($query) or die(mysql_error()); /* Узнаем количество записей в базе данных */ $row = mysql_num_rows($res); /* Выводим данные из таблицы */ echo (" <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" /> <title>Редактирование и обновление данных</title> <style type=\"text/css\"> <!-- body { font: 12px Georgia; color: #666; } h3 { font-size: 16px; text-align: center; } table { width: 400px; border-collapse: collapse; margin: 5px auto; background: #E6E6E6; } td { padding: 3px; vertical-align: middle; } input { width: 250px; border: solid 1px #CCC; color: #FF6666; } textarea { width: 250px; height: 100px; border: solid 1px #CCC; color: #FF6666; } .buttons { width: auto; border: double 1px #666; background: #D6D6D6; color: #000; } #num { width: 20px; text-align: right; margin-right: 5px; float: right; } --> </style> </head> <body> <h3>Редактирование и обновление данных в таблице MySQL</h3> "); /* Цикл вывода данных из базы конкретных полей */ while ($row = mysql_fetch_array($res)) { echo "<form action=\"update_data.php\" method=\"post\" name=\"edit_form\"> ъ\n"; echo "<input type=\"hidden\" name=\"update\" value=\"".$row["id"]."\" />\n"; echo "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">\n"; echo "<tr>\n"; echo "<td colspan=\"2\" style=\"border-bottom:solid 1px #CCCCCC;\"><b><i> <div id=\"num\">#".$row["id"]."</div>".$row['data']."</b></i></td>\n"; echo "</tr><tr>\n"; echo "<td>Имя пользователя:</td><td><input type=\"text\" value=\ "".$row['name']."\" name=\"test_name\" /></td>\n"; echo "</tr><tr>\n"; echo "<td>E-Mail пользователя:</td><td><input type=\"text\" value=\ "".$row['email']."\" name=\"test_mail\" /></td>\n"; echo "</tr><tr>\n"; echo "<td>Тема сообщения:</td><td><input type=\"text\" value=\ "".$row['theme']."\" name=\"test_theme\" /></td>\n"; echo "</tr><tr>\n"; echo "<td>Сообщение:</td><td><textarea name=\"test_mess\">" .$row['message']."</textarea></td>\n"; echo "</tr><tr>\n"; echo "<td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"submit_edit\" class=\"buttons\" value=\"Сохранить изменения\" /></td>\n"; echo "</tr></table></form>\n\n"; } /* Закрываем соединение */ mysql_close(); /* Выводим ссылку возврата */ echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>"); ?>[/PHP] хочу применить его для своих целей, но почему то при нажатии на кнопку "сохранить" измененные данные, данные в базе не изменяются, а остаются прежние и нет предупреждений.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое | 5 | CULA | 3429 | 19.12.2023, 18:55 автор: CULA |
|
Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery Разработка сайтов и сервисов под-ключ |
0 | alexey | 1246 | 24.11.2023, 14:46 автор: alexey |
|
Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP) | 56 | qpPeW | 44948 | 19.7.2023, 10:03 автор: qpPeW |
|
Есть спецы по php/laravel? | 3 | Mixatraider | 1894 | 26.5.2023, 20:48 автор: Mixatraider |
|
Опытный PHP\Python разработчик в поиске интересных задач | 6 | daikzlex | 3409 | 25.5.2023, 13:55 автор: daikzlex |
Текстовая версия | Сейчас: 26.4.2024, 2:18 |