Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Изменение данных в БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
kolyan9898
Отправлено: 16 Июля, 2012 - 20:27:29
Post Id


Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Вообщем не кидайте тапками,я только учусь php.
И у меня проблема такова:я хочу изменить данные в бд как это зделать вот код,но это из регистрации код вырван Радость, я пока нуб и сам немогу написать функцию.
PHP:
скопировать код в буфер обмена
  1.  
  2. include('connectdb.php');// подключение к серверу MySql и выбор БД
  3.  
  4. if (($_POST['login']!='') ||
  5.     ($_POST['pass1']!='') ||
  6.     ($_POST['pass2']!='') ||
  7.     ($_POST['serv']!='') ||
  8.     ($_POST['email']!='')) { // если все данные для регистрации введены, то продолжаем
  9.     $pass1 = $_POST['pass1'];
  10.     $pass2 = $_POST['pass2'];
  11.  
  12.     if (strcmp($pass1, $pass2) == 0) {// если пароли совпадают, то продолжаем
  13.       $login = $_POST['login'];
  14.       $email = $_POST['email'];
  15.       $serv = $_POST['serv'];
  16.  
  17.           // sql-скрипт для добавления даных в таблицу
  18.           $sql = 'UPDATE users SET(login, pass, email, serv)
  19.                   VALUES("'.$login.'", "'.$pass1.'", "'.$email.'", "'.$serv.'")';
  20.           if(mysql_query($sql)) {// выполняем скрипт
  21.             echo ''.$_POST['login'].' ваши настройки успешно изменены!';
  22.           } else {
  23.             echo 'При регистрации произошла ошибка, <a href="/edit.php">повторите попытку</a>.';
  24.           }
  25.     } else echo 'Введенные пароли не совпадают, <a href="/edit.php">повторите попытку</a>.';
  26. } else {
  27. ?>
  28.  <b><form method='post' action='/edit.php'>
  29.   Введите новый Логин: <input type='text' size='30' name='login' />  Введите новый e-mail: <input type=text size=30 name='email' /> <p><b>К какому серверу вас привязать?:</b><Br>
  30.    <input type="radio" name="serv" value="Surf"> Surf Ski сервер<Br>
  31.    <input type="radio" name="serv" value="Public"> Public сервер<Br>
  32.   Введите новый Пароль: <input type='password' name='pass1' size='30' />  Повторите пароль: <input type='password' name='pass2' size='30' />  <input type='submit' value='Изменить,сохранить' /></b>
  33. <?  
  34. }
  35. ?>


Отредактировано администратором: EuGen, 16 Июля, 2012 - 22:36:35
Некорректное использование цветового выделения и величины шрифта. Устное предупреждение.
 
 Top
DelphinPRO
Отправлено: 16 Июля, 2012 - 21:02:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




ну так проблема-то в чем? код есть, даже вроде рабочий (хоть и не идеальный с точки зрения безопасности)


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
kolyan9898
Отправлено: 16 Июля, 2012 - 21:04:29
Post Id


Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




DelphinPRO пишет:
ну так проблема-то в чем? код есть, даже вроде рабочий (хоть и не идеальный с точки зрения безопасности)

Вообщем он пишет ошибка регистрации что-то тут не так помоги исправить
 
 Top
DelphinPRO
Отправлено: 16 Июля, 2012 - 21:11:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Запрос составлен неверно

PHP:
скопировать код в буфер обмена
  1. $sql = "
  2.    UPDATE `users`
  3.    SET
  4.        `login` = '$login',
  5.        `pass` = '$pass1',
  6.        `email` = '$email',
  7.        `serv` = '$serv'
  8. ";
  9. if(mysql_query($sql)) {// выполняем скрипт
  10.   echo $_POST['login'].' ваши настройки успешно изменены!';
  11. } else {
  12.   echo 'При регистрации произошла ошибка, <a href="/edit.php">повторите попытку</a>.';
  13. }

(Добавление)
Если пользователей много в таблице, то такой запрос изменит данные у всех.
Чтобы изменять данные у конкретного юзверя, следует добавить в запрос предложение WHERE

PHP:
скопировать код в буфер обмена
  1. $sql = "
  2.    UPDATE `users`
  3.    SET
  4.        `login` = '$login',
  5.        `pass` = '$pass1',
  6.        `email` = '$email',
  7.        `serv` = '$serv'
  8.    WHERE
  9.        `id` = $id
  10. ";


где $id - это идентификатор пользователя, чаще всего - первичный ключ таблицы

(Отредактировано автором: 16 Июля, 2012 - 21:14:19)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
kolyan9898
Отправлено: 16 Июля, 2012 - 21:38:05
Post Id


Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Получилось так,но пишет ошибку серовно При регистрации произошла ошибка
PHP:
скопировать код в буфер обмена
  1. <?
  2. include('connectdb.php');// подключение к серверу MySql и выбор БД
  3.  
  4. if (($_POST['login']!='') ||
  5.     ($_POST['pass1']!='') ||
  6.     ($_POST['pass2']!='') ||
  7.     ($_POST['serv']!='') ||
  8.     ($_POST['email']!='')) { // если все данные для регистрации введены, то продолжаем
  9.     $pass1 = $_POST['pass1'];
  10.     $pass2 = $_POST['pass2'];
  11.  
  12.     if (strcmp($pass1, $pass2) == 0) {// если пароли совпадают, то продолжаем
  13.       $login = $_POST['login'];
  14.       $email = $_POST['email'];
  15.       $serv = $_POST['serv'];
  16.  
  17.         $sql = "
  18.         UPDATE `users`
  19.         SET
  20.       `login` = '$login',
  21.       `pass` = '$pass1',
  22.       `email` = '$email',
  23.       `serv` = '$serv'
  24.         WHERE
  25.       `id` = $id
  26.         ";
  27.         if(mysql_query($sql)) {// выполняем скрипт
  28.   echo $_POST['login'].' ваши настройки успешно изменены!';
  29. } else {
  30.   echo 'При регистрации произошла ошибка, <a href="/edit.php">повторите попытку</a>.';
  31. }
  32.     } else echo 'Введенные пароли не совпадают, <a href="/edit.php">повторите попытку</a>.';
  33. } else {
  34. ?>
  35.  <b><form method='post' action='/edit.php'>
  36.   Введите новый Логин: <input type='text' size='30' name='login' />  Введите новый e-mail: <input type=text size=30 name='email' /> <p><b>К какому серверу вас привязать?:</b><Br>
  37.    <input type="radio" name="serv" value="Surf"> Surf Ski сервер<Br>
  38.    <input type="radio" name="serv" value="Public"> Public сервер<Br>
  39.   Введите новый Пароль: <input type='password' name='pass1' size='30' />  Повторите пароль: <input type='password' name='pass2' size='30' />  <input type='submit' value='Изменить,сохранить' /></b>
  40. <?  
  41. }
  42. ?>
 
 Top
DelphinPRO
Отправлено: 16 Июля, 2012 - 22:15:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




DelphinPRO пишет:
где $id - это идентификатор пользователя, чаще всего - первичный ключ таблицы


а у тебя где этот ID? чему он равен?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
kolyan9898
Отправлено: 16 Июля, 2012 - 22:54:55
Post Id


Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




DelphinPRO пишет:
DelphinPRO пишет:
где $id - это идентификатор пользователя, чаще всего - первичный ключ таблицы


а у тебя где этот ID? чему он равен?

Непонял вас...смысле id=$id
 
 Top
kolyan9898
Отправлено: 17 Июля, 2012 - 04:17:15
Post Id


Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




==UP==
 
 Top
DelphinPRO
Отправлено: 17 Июля, 2012 - 07:59:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




DelphinPRO пишет:
$id - это идентификатор пользователя

где вы его берете?
в коде используете переменную $id, а какое значение вы ей присваиваете, перед использованием в запросе?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
kolyan9898
Отправлено: 17 Июля, 2012 - 08:18:29
Post Id


Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




я использую в личном кабинете! Ваш id: '.$userinfo["id"].'
а в настройки идут через iframe окно php ссылок с настройками
 
 Top
kolyan9898
Отправлено: 18 Июля, 2012 - 08:10:01
Post Id


Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




помогите плз! Белый флаг Огорчение Слёзы в глазах
 
 Top
kolyan9898
Отправлено: 18 Июля, 2012 - 16:48:44
Post Id


Гость


Покинул форум
Сообщений всего: 127
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




помогите плз!up3!!
 
 Top
brain105
Отправлено: 14 Сентября, 2012 - 15:22:15
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Здраствуйте
Надо отредактировать данныс с БД.
Сперва делаю селект SELECT * FROM $table
и вывожу все в таблицу, последняя ячейка в таблице
кнопка "Обновить".
Неприсваевается ИД, когда нажимаю на кнопку.

Делал по примеру http://www.html.by/threads/986-Urok-prakticheskogo-primenenija-PHP-MySQL.
там исправил некоторые ошибки и пример заработал.
Но когда в том же применере изменяю таблицу - перестает работать.
Скрин привожу отдельно новой таблицы (моей).
(Добавление)
<?php
include "db.php"; // Підключення до БД;
error_reporting(E_ALL);
ini_set('display_errors',1);

/* Если была нажата кнопка редактирования, вносим изменения */
//if(@$submit_edit) {
//if (isset($_POST['submit_edit'])) {
if(@$_POST['submit_edit']) {
//$query = "UPDATE $table SET name='$test_name', email='$test_mail', theme='$test_theme', message='$test_mess' WHERE id='$update'";

//$query = "UPDATE $table SET name='$test_name', email='$test_mail', theme='$test_theme', message='$test_mess' WHERE id='".$_POST['update']."'";

$query = "UPDATE $table SET name='".$_POST["test_name"]."', email='".$_POST["test_mail"]."', theme='".$_POST["test_theme"]."', message='".$_POST["test_mess"]."' WHERE id='".$_POST['update']."'";

// '".$_POST["month"]."'

/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die (mysql_error());

print "Test -->> ";
print_r ($query);

}
//print_r ($query);


/* Заносим в переменную $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 "<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 "<td>Сообщение:</td><td><input type=\"text\" value=\"".$row['message']."\" name=\"test_mess\" /></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";

print "<br>";
echo "row_id - while " .$row['id']."<br>";

}

print "<br>";
echo "row_id " .$row['id']."<br>";

/* Закрываем соединение */
mysql_close();

/* Выводим ссылку возврата */
echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>");

?>
Скачать файл: Projekt.rar
Скачан раз: 101
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB