Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 25.12.2017, 15:54   #1
MDragniil
Пользователь
 
Регистрация: 23.12.2016
Сообщений: 31
Репутация: 10
По умолчанию Изменение данных

пытаюсь сделать так чтоб пользователь мог менять данные
отображается только кнопка нажать
PHP код:
<!DOCTYPE html>
<html>
<head>
  <title>Поиск</title>
  <meta charset="utf-8">
   <link rel="stylesheet" type="text/css" href="fonp.css">
</head>
 
<body>
    <form action="http://lichdstyd/">
    <input type="submit" value="На главную" class="knopka"/>
        </form>
        <fieldset>
            <legend>Поиск</legend>
<form method="POST" action="select_styd.php">
<label for="name">Имя для поиска:</label><br/>
<input type="text" name="name" size="30"><br/>
<label for="surname">Фамилия для поиска:</label><br/>
<input type="text" name="surname" size="30"><br/>
<input id="submit" type="submit" value="Найти и вывести"><br/>
</form>
</fieldset>
  <fieldset>
      <legend>Все студенты</legend>
    <ul>
        <?php
        
require "oll_styd.php";
    
?>
        </ul
</fieldset>
</body>
</html>
select_styd.php
PHP код:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="fonp.css">
    <title>Запросить данные из БД</title>
    </head>
    <body>
 
    <dl>
 
    <?php
$host 
'localhost'// адрес сервера
$database 'styd'// имя базы данных
$user 'root'// имя пользователя
$password ''// пароль
 
    // Соединиться с сервером БД
    
$link mysqli_connect($host$user$password$database)
        or die(
"Ошибка " mysqli_error($link));
 
    
    
$query ="SELECT * FROM new_table WHERE id= '$id'";
 
    
// выполняем запрос
    
$result mysqli_query($link$query) or die("Ошибка " mysqli_error($link)); 
    
    
// Цикл по $result
    
while($row mysqli_fetch_array($result)) {
 
        
// Записать данные человека
        
printf("<form action='scripts/update.php' method='post' name='forma'>
<fieldset>
<input type='hidden' name='id'  value='%s'><br/>
<label for='name'>Имя:</label><br/>
<input type='text' name='name' size='30' value='%s'><br/>
<label for='surname'>Фамилия:</label><br/>
<input type='text' name='surname' size='30' value='%s'><br/>
</fieldset>
<br/>
<fieldset>
<input id='submit' type='submit' value='Редактировать запись'><br/>
</fieldset>
</form>"
,$row['id'], $row['name'], $row['surname']);
 
 
 
    }
 
    
// Закрыть соединение с БД
    
mysqli_close($link);
    
?>
 
    </dl>
    <p><a href="http://lichdstyd/poisk">Назад</a></p>
 
    </body>
 
    </html>
scripts/update.php
PHP код:
<!DOCTYPE HTML>
<html>
<head>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="fonp.css">
    <title>Запросить данные из БД</title>
    </head>

<body>
<?php
$host 
'localhost'// адрес сервера
$database 'styd'// имя базы данных
$user 'root'// имя пользователя
$password ''// пароль

    // Соединиться с сервером БД
    
$link mysqli_connect($host$user$password$database)
        or die(
"Ошибка " mysqli_error($link));
 
$id=$_REQUEST['id'];
$name=trim($_REQUEST['name']);
$surname=trim($_REQUEST['surname']);

$update_sql "UPDATE users SET name='$name', surname='$surname'";
mysqli_query($update_sql) or die("Ошибка вставки" mysqli_error());
echo 
'<p>Запись успешно обновлена!</p>';
    
mysqli_close($link);
?>
<a href="http://lichdstyd/regist">Добавить пользователя</a><br/><br/>
<a href="http://lichdstyd/poisk">Вернуться к поиску</a><br/>
</body>
</html>
MDragniil вне форума   Ответить с цитированием
Старый 25.12.2017, 16:09   #2
MDragniil
Пользователь
 
Регистрация: 23.12.2016
Сообщений: 31
Репутация: 10
По умолчанию

хотя с формами разобрался, не выводятся данные которые нужно менять
PHP код:
// Цикл по $result
    $row = mysqli_fetch_assoc($result);?>

        <form action='scripts/update.php' method='post' name='forma'>
    <fieldset>
        <input type='hidden' name='id'  value='<?=$row['id']?>'><br/>
        <label for='name'>Имя:</label><br/>
        <input type='text' name='name' size='30' value='<?=$row['name']?>'><br/>
        <label for='surname'>Фамилия:</label><br/>
        <input type='text' name='surname' size='30' value='<?=$row['surname']?>'><br/>
    </fieldset>
<br/>
    <fieldset>
        <input id='submit' type='submit' value='Редактировать запись'><br/>
    </fieldset>
</form>


<?
    
// Закрыть соединение с БД
    
mysqli_close($link);
    
?>
MDragniil вне форума   Ответить с цитированием
Старый 25.12.2017, 16:58   #3
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,354
Репутация: 5274
По умолчанию

Цитата:
Сообщение от MDragniil Посмотреть сообщение
Код:

$id=$_REQUEST['id']; 
$name=trim($_REQUEST['name']); 
$surname=trim($_REQUEST['surname']);

если выполнение доходит до "scripts/update.php" (это легко проверить, если что)
тогда нужно
1) добавить проверку, что вызвали именно через метод POST и что нужные данные есть
2) брать данные из массива $_POST
3) данные защищать от SQL-инъекций и от мусора
(хотя бы с помощью mysqli_real_escape_string()
подробнее см. PHP FAQ: Защита от SQL-инъекций
4) указать id в where классе запроса на обновление данных update

например,
Код:

if($_SERVER['REQUEST_METHOD']=='POST'){
  if(isset($_POST['id']) && isset($_POST['name']) && isset($_POST['surname'])){

	$id=$_POST['id']; 
	$name=trim($_POST['name']); 
	$surname=trim($_POST['surname']); 

   тут далее connect и запрос update


    $update_sql = 'UPDATE `users` SET name="'.mysqli_real_escape_string($name).'" , surname="'.mysqli_real_escape_string($surname).
        '" where id = '.mysqli_real_escape_string($id); 
....

  }


}


Последний раз редактировалось Serge_Bliznykov; 25.12.2017 в 17:02.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 26.12.2017, 00:00   #4
MDragniil
Пользователь
 
Регистрация: 23.12.2016
Сообщений: 31
Репутация: 10
По умолчанию

PHP код:
<!DOCTYPE HTML>
<html>
<head>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="fonp.css">
    <title>Запросить данные из БД</title>
    </head>

<body>
<?php
$host 
'localhost'// адрес сервера
$database 'styd'// имя базы данных
$user 'root'// имя пользователя
$password ''// пароль

    // Соединиться с сервером БД
    
$link mysqli_connect($host$user$password$database)
        or die(
"Ошибка " mysqli_error($link));
 
    if(
$_SERVER['REQUEST_METHOD']=='POST'){
  if(isset(
$_POST['id']) && isset($_POST['name']) && isset($_POST['surname']) && isset($_POST['middle_name']) && isset($_POST['birth_date']) && isset($_POST['sex']) && isset($_POST['course']) && isset($_POST['direction']) && isset($_POST['special']) && isset($_POST['phone']) && isset($_POST['passport']) && isset($_POST['email']) && isset($_POST['numb_z']) && isset($_POST['adress']) && isset($_POST['citizenship']) && isset($_POST['mother'])&& isset($_POST['father'])&& isset($_POST['studied'])&& isset($_POST['family'])){

$id=$_POST['id'];
$name=trim($_POST['name']);
$surname=trim($_POST['surname']);
$middle_name=trim($_POST['middle_name']);
$birth_date=trim($_POST['birth_date']);
$sex=trim($_POST['sex']);
$course=trim($_POST['course']);
$direction=trim($_POST['direction']);
$special=trim($_POST['special']);
$phone=trim($_POST['phone']);
$passport=trim($_POST['passport']);
$email=trim($_POST['email']);
$numb_z=trim($_POST['numb_z']);
$adress=trim($_POST['adress']);
$citizenship=trim($_POST['citizenship']);
$mother=trim($_POST['mother']);
$father=trim($_POST['father']);
$studied=trim($_POST['studied']);
$family=trim($_POST['family']);

$update_sql "UPDATE 'new_table' SET name='".mysqli_real_escape_string($name)."', surname='".mysqli_real_escape_string($surname)."', middle_name='".mysqli_real_escape_string($middle_name)."', birth_date='".mysqli_real_escape_string($birth_date)."', sex='".mysqli_real_escape_string($sex)."', course='".mysqli_real_escape_string($course)."', direction='".mysqli_real_escape_string($direction)."', special='".mysqli_real_escape_string($special)."',phone='".mysqli_real_escape_string($phone)."',passport='".mysqli_real_escape_string($passport)."',email='".mysqli_real_escape_string($email)."',numb_z='".mysqli_real_escape_string($numb_z)."',adress='".mysqli_real_escape_string($adress)."',citizenship='".mysqli_real_escape_string($citizenship)."',mother='".mysqli_real_escape_string($mother)."',father='".mysqli_real_escape_string($father)."', studied='".mysqli_real_escape_string($studied)."', family='".mysqli_real_escape_string($family)."' WHERE id='".mysqli_real_escape_string($id)."'";
echo 
$update_sql;
$sql mysqli_query($link$update_sql) or die("Ошибка вставки" mysqli_error());
 
if (
$sql) {
echo 
'<p>Запись успешно обновлена!</p>';
}
  }
    
mysqli_close($link);
?>
<a href="http://lichdstyd">Добавить пользователя</a><br/><br/>
<a href="http://lichdstyd/poisk">Вернуться к поиску</a><br/>
</body>
</html>
все равно не выводит данные
MDragniil вне форума   Ответить с цитированием
Старый 26.12.2017, 00:25   #5
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,290
Репутация: 1064
По умолчанию

Как найти ошибку в своем коде?
Налицо явные проблемы с пониманием прочитанного в ответах в собственных предыдущих темах и предложенных в них ссылках, увы.
Andkorol вне форума   Ответить с цитированием
Старый 26.12.2017, 01:01   #6
MDragniil
Пользователь
 
Регистрация: 23.12.2016
Сообщений: 31
Репутация: 10
По умолчанию

я ничего не могу найти, ошибки синтаксиса - нету, других ошибок нету. я чем дальше я ищу, тем глубже запутываюсь. было где то нашел пару косяков в моем коде но это ничего не исправило. а идея одна сделать так чтоб данные выводились и я мог менять их по желанию и сохранить обратно в бд.
MDragniil вне форума   Ответить с цитированием
Старый 26.12.2017, 01:02   #7
MDragniil
Пользователь
 
Регистрация: 23.12.2016
Сообщений: 31
Репутация: 10
По умолчанию

даже ясли я прочту вашу ссылку я все равно не нашел ответ на свой вопрос. переискал еще раз. ничего не нашел
MDragniil вне форума   Ответить с цитированием
Старый 26.12.2017, 01:21   #8
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,290
Репутация: 1064
По умолчанию

Ну тогда забей просто, это не твоё.
Если детальная пошаговая инструкция по дебагу собственного кода не помогает найти причину ошибок в коде – значит самое время сменить профессию, и идти торговать мороженым.
Andkorol вне форума   Ответить с цитированием
Старый 26.12.2017, 01:25   #9
MDragniil
Пользователь
 
Регистрация: 23.12.2016
Сообщений: 31
Репутация: 10
По умолчанию

а то что у меня время не хватает на полного изучения php ничего? дали месяц на создания сайта: html-все понимаю, css-любимое дело, но php-простите, слишком трудно для меня в отличии от 2х первых. и вот остается 2 дня до сдачи проэкта курсового, а учиться ,ходить в технарь и до 16 часов, потом час на обратно и ночь зубрения этого языка.
MDragniil вне форума   Ответить с цитированием
Старый 26.12.2017, 01:28   #10
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,290
Репутация: 1064
По умолчанию

Цитата:
Сообщение от MDragniil Посмотреть сообщение
а то что у меня время не хватает на полного изучения php ничего? дали месяц на создания сайта: html-все понимаю, css-любимое дело, но php-простите, слишком трудно для меня в отличии от 2х первых. и вот остается 2 дня до сдачи проэкта курсового, а учиться ,ходить в технарь и до 16 часов, потом час на обратно и ночь зубрения этого языка.
Извини, но здесь это никого особо не покачивает.
Нет знаний – шагай в раздел «Фриланс» и плати деньги, для студентов это вроде достаточно очевидно.
Просто и эффективно.
Andkorol вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение данных в буфере - C++ LifeDiary Общие вопросы C/C++ 11 29.01.2017 16:01
Базы данных изменение данных (Delphi (ADO)). RuthlessD Помощь студентам 0 16.06.2011 19:57
Изменение данных и перенос данных из одной таб в другую Kot9ra Microsoft Office Access 13 02.07.2010 12:22
Пароль на изменение данных messi013 Общие вопросы Delphi 5 11.01.2010 22:43
Изменение данных Екатерина БД в Delphi 1 24.03.2007 11:45


00:26.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru