X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> UPDATE таблиц mysql из php
ganerals
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'].'&amp;"> Перейти в свой профиль</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
Muxa_hb
сообщение 28.12.2012, 22:18; Ответить: Muxa_hb
Сообщение #2


(amijin @ 28.12.2012, 20:41) *
[PHP]mysqli_query($dbc,$query1)or die('Не удалось выполнить запрос');[/PHP]

[PHP]mysqli_query($dbc,$query1) or die( 'Не удалось выполнить запрос. Ошибка: ' . mysql_error($dbc) . '<br>Запрос: ' . $query1 );[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ganerals
ganerals
сообщение 29.12.2012, 10:39; Ответить: ganerals
Сообщение #3


(Muxa_hb @ 29.12.2012, 01:18) *
[PHP]mysqli_query($dbc,$query1) or die( 'Не удалось выполнить запрос. Ошибка: ' . mysql_error($dbc) . '<br>Запрос: ' . $query1 );[/PHP]

Я изменил на Ваш вариант, но ошибки в этом месте у меня нет. Выполняется вот это:[PHP]}else{echo'не удалось';}[/PHP] код до else не выполняется. Названия столбцов раз 10 проверял -ошибки нет . Вообщем ХЗ :(
p.s. пользуюсь Denwer -ом
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Muxa_hb
Muxa_hb
сообщение 29.12.2012, 11:15; Ответить: Muxa_hb
Сообщение #4


(amijin @ 28.12.2012, 20:41) *
[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 поддерживает передачу нескольких аргументов..
(amijin @ 28.12.2012, 20:41) *
[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
ganerals
сообщение 29.12.2012, 12:03; Ответить: ganerals
Сообщение #5


(Muxa_hb @ 29.12.2012, 14:15) *
значит какое то из этих сообщений - NULL. И кстати, да, isset поддерживает передачу нескольких аргументов..

[PHP]if(isset($lastname, $firstname, $gender, $birthday, $city, $country)){[/PHP]

Вот я дуралей,вот я слепой крот :wacko:( , только благодаря Вам и PhpStorm -у, установленному на другом компе, нашел ошибку в имени переменной $birthday.
Muxa, очень извиняюсь за отнятое у Вас время.
p.s. PhpStorm рулит :goodpost:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Muxa_hb
Muxa_hb
сообщение 29.12.2012, 12:35; Ответить: Muxa_hb
Сообщение #6


P.S. используйте лучше prepared statements, во-первых, код сократится порядочно, а во вторых, насколько я помню, подготовленные выражения предпочтительнее, т.к. обрабатываются на серверной стороне, а не на клиентской (как .._escape_string()). Если я конечно не ошибаюсь в чем-то :)

P.S. Placeholders рулят :hihi:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Lansdorf
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]

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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3289 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1168 24.11.2023, 14:46
автор: alexey
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44760 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Есть спецы по php/laravel?
3 Mixatraider 1856 26.5.2023, 20:48
автор: Mixatraider
Открытая тема (нет новых ответов) Опытный PHP\Python разработчик в поиске интересных задач
6 daikzlex 3360 25.5.2023, 13:55
автор: daikzlex


 



RSS Текстовая версия Сейчас: 28.3.2024, 12:46
Дизайн