Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2014, 13:30   #11
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

В том то и дело что выводится, а вот при нажатии кнопки submit отправляются все данные из форм но с пустым айдишником, и соответственно в базу данные не подливаются.
maksikus вне форума Ответить с цитированием
Старый 16.12.2014, 14:07   #12
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от maksikus Посмотреть сообщение
В том то и дело что выводится, а вот при нажатии кнопки submit отправляются все данные из форм но с пустым айдишником, и соответственно в базу данные не подливаются.
Я ничё не понял – какое «нажатие»?
Я привел пример проверочного кода – в этом коде, при отправке данных из формы, в обоих случаях выводится значение $id?
Выводится и просто значение, и это же значение в строке запроса?
Andkorol вне форума Ответить с цитированием
Старый 16.12.2014, 14:22   #13
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Я ничё не понял – какое «нажатие»?
Я привел пример проверочного кода – в этом коде, при отправке данных из формы, в обоих случаях выводится значение $id?
Выводится и просто значение, и это же значение в строке запроса?
PHP код:
 $sql1 "UPDATE regbase SET id='$id', ish_doc='$ish_doc', spsb_otp='$spsb_otp', arm_ish='$arm_ish', kol_exz='$kol_exz', kol_lst_pril='$kol_lst_pril', isp_regish='$isp_regish', primech='$primech' WHERE id='$id'";
        echo 
$sql1
Выводит:
UPDATE regbase SET id='', ish_doc='0', spsb_otp='0', arm_ish='', kol_exz='0', kol_lst_pril='0', isp_regish='', primech='' WHERE id=''

А если подставить SQL1 сразу перед IF:
PHP код:
 if(!isset($_POST['submit'])){
  
$sql1 "UPDATE regbase SET id='$id', ish_doc='$ish_doc', spsb_otp='$spsb_otp', arm_ish='$arm_ish', kol_exz='$kol_exz', kol_lst_pril='$kol_lst_pril', isp_regish='$isp_regish', primech='$primech' WHERE id='$id'";
        echo 
$sql1
то и айдишник выводит:
UPDATE regbase SET id='53', ish_doc='', spsb_otp='', arm_ish='', kol_exz='', kol_lst_pril='', isp_regish='', primech='' WHERE id='53'
maksikus вне форума Ответить с цитированием
Старый 16.12.2014, 14:41   #14
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Чё-то ты с кодом мутишь...
Это ж уже не такой запрос – в первом посте был такой запрос:
Цитата:
Сообщение от maksikus Посмотреть сообщение
$sql1 = "UPDATE regbase SET ish_doc='$ish_doc', spsb_otp='$spsb_otp', arm_ish='$arm_ish', kol_exz='$kol_exz', kol_lst_pril='$kol_lst_pril', isp_regish='$isp_regish', primech='$primech' WHERE id='$id'";
Сейчас такой:
Цитата:
Сообщение от maksikus Посмотреть сообщение
$sql1 = "UPDATE regbase SET id='$id', ish_doc='$ish_doc', spsb_otp='$spsb_otp', arm_ish='$arm_ish', kol_exz='$kol_exz', kol_lst_pril='$kol_lst_pril', isp_regish='$isp_regish', primech='$primech' WHERE id='$id'";
Вывод тоже стремный:
Цитата:
Сообщение от maksikus Посмотреть сообщение
Выводит:
UPDATE regbase SET id='', ish_doc='0', spsb_otp='0', arm_ish='', kol_exz='0', kol_lst_pril='0', isp_regish='', primech='' WHERE id=''
...
то и айдишник выводит:
UPDATE regbase SET id='53', ish_doc='', spsb_otp='', arm_ish='', kol_exz='', kol_lst_pril='', isp_regish='', primech='' WHERE id='53'
В первом запросе есть $id – но нет никаких других данных, пустые поля.
Во втором запросе нет $id – а другие данные присутствуют, хоть и в виде нулей.

Чудес не бывает: если переменная имеет некоторое значение в начале кода, а в конце уже нет – значит, где-то посредине ты эту переменную или удалил, или переопределил пустым значением.
Andkorol вне форума Ответить с цитированием
Старый 16.12.2014, 15:23   #15
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Чё-то ты с кодом мутишь...
Это ж уже не такой запрос – в первом посте был такой запрос:
Сейчас такой:
Вывод тоже стремный:
В первом запросе есть $id – но нет никаких других данных, пустые поля.
Во втором запросе нет $id – а другие данные присутствуют, хоть и в виде нулей.

Чудес не бывает: если переменная имеет некоторое значение в начале кода, а в конце уже нет – значит, где-то посредине ты эту переменную или удалил, или переопределил пустым значением.
Ой. я с выводом данных кое что проверял и забыл удалить лишний запрос id='$id', . Вывод данных не изменился, вопрос остался. С работы удаленно заходил, не было времени проверять код перед отправкой.

Запрос должен выглядеть так:
PHP код:
        $sql1 "UPDATE regbase SET ish_doc='$ish_doc', spsb_otp='$spsb_otp', arm_ish='$arm_ish', kol_exz='$kol_exz', kol_lst_pril='$kol_lst_pril', isp_regish='$isp_regish', primech='$primech' WHERE id='$id'";
        echo 
$sql1
Перед отправкой POST отображает на странице:
UPDATE regbase SET ish_doc='0', spsb_otp='0', arm_ish='', kol_exz='0', kol_lst_pril='0', isp_regish='', primech='' WHERE id='53'

После отправки POST:
UPDATE regbase SET ish_doc='1', spsb_otp='4', arm_ish='151', kol_exz='2', kol_lst_pril='0', isp_regish='', primech='sdfsdfsdfsd' WHERE id=''

Последний раз редактировалось maksikus; 16.12.2014 в 15:41.
maksikus вне форума Ответить с цитированием
Старый 16.12.2014, 17:54   #16
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ну, вобщем, у тебя тут глупости написаны, в плане именно самого создания переменной $id:
Цитата:
Сообщение от maksikus Посмотреть сообщение
PHP код:
if (!isset($_GET['id']))//проверяем ключ
    
echo "Номер не получен, надо идти назад!";
    else{
    
$id $myrow['id'] ? stripslashes($_GET['id']) : $_GET['id']; 
    echo 
"Регистрируем исх., на вх. запрос № " .$id;
        } 
На псевдокоде это выглядит так:
// Переменной $id пока не существует
Если (не существует($_GET['id']))
{
– ругаешься "Номер не получен, надо идти назад!";
}
иначе{
– тут ты как раз и создаешь переменную $id, при этом вытворяя непонятно что и зачем с переменной $_GET['id'];
– выводишь заголовок "Регистрируем исх., на вх. запрос № " .$id;
}

Другими словами: если нет переменной $_GET['id'] – то нет и никакой переменной $id, соответственно.
Ну и, понятное дело, без неё ничего не работает.
При начальном вызове страницы ты передаешь ID в адресной строке: index.php?id=53
А при передаче данных из формы ты этот ID не передаешь. Никак, совсем.
Поэтому и epic fail.
Andkorol вне форума Ответить с цитированием
Старый 16.12.2014, 18:58   #17
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

PHP код:
    require "db.inc.php";
    require 
"lib.inc.php";
mysqli_set_charset($link'utf8'); //под какой кодировкой ходим

if (isset($_GET['id']))
    
$id $_GET['id']; 
//    $sql = "SELECT * FROM regbase WHERE id='$id'";
//    $result = mysqli_query($link, $sql) or die(mysqli_error($link));
//    $arr = mysqli_fetch_assoc($result);
 
print_r ($id);// id пришел = 53
 
if(isset($_POST['submit'])){
        
$ish_doc clearInt($_POST['ish_doc']);//clearStr() - проверка текста в целях безопасности
        
$spsb_otp clearInt($_POST['spsb_otp']); 
        
$arm_ish clearStr($_POST['arm_ish']);
        
$kol_exz clearInt($_POST['kol_exz']);
        
$kol_lst_pril clearInt($_POST['kol_lst_pril']);
        
$isp_regish clearStr($_POST['isp_regish']);
        
$primech clearStr($_POST['primech']);
        
$id $_GET['id'];
        
$sql1 "UPDATE regbase SET ish_doc='$ish_doc', spsb_otp='$spsb_otp', arm_ish='$arm_ish', kol_exz='$kol_exz', kol_lst_pril='$kol_lst_pril', isp_regish='$isp_regish', primech='$primech' WHERE id='$id'";
    
print_r($sql1);    //UPDATE regbase SET ish_doc='1', spsb_otp='4', arm_ish='151', kol_exz='2', kol_lst_pril='0', isp_regish='', primech='sdfsdfsdfsd' WHERE id='' id потерялся
        
$result1 mysqli_query($link,$sql1) or die('Не удалось выполнить запрос. Ошибка: ' mysqli_error($link) . 'Запрос: ' $sql1 );

Убрал все проверки, и все равно теряется где-то.
maksikus вне форума Ответить с цитированием
Старый 16.12.2014, 19:07   #18
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от maksikus Посмотреть сообщение
PHP код:
if (isset($_GET['id']))
    
$id $_GET['id']; 
Убрал все проверки, и все равно теряется где-то.
Мл*, а это что – не проверка что ли?!?
Ты так ничего и не понял – нужно не проверки убирать, а ID передавать.
Andkorol вне форума Ответить с цитированием
Старый 16.12.2014, 19:30   #19
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Мл*, а это что – не проверка что ли?!?
Ты так ничего и не понял – нужно не проверки убирать, а ID передавать.
Блин, походу я не дойду своим умом как передать ID
maksikus вне форума Ответить с цитированием
Старый 16.12.2014, 19:34   #20
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от maksikus Посмотреть сообщение
Блин, походу я не дойду своим умом как передать ID
Ну а как ты его передаешь изначально, при вызове страницы?
Через строку запроса.
Вот точно так же можно передать и при отправке данных из формы – через строку запроса.
Или через скрытое поле формы – а в обработчике получить ID из $_POST.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Groovy on Grails. Не сохраняются данные в БД Flame20 Помощь студентам 1 07.04.2014 12:39
Данные не сохраняются Анастас Помощь студентам 4 26.10.2011 17:17
Введенные данные в DBGridEh не сохраняются prorock БД в Delphi 11 21.04.2011 14:35
Данные не сохраняются Шляп Microsoft Office Access 2 23.05.2010 19:58
Слишком долго сохраняются данные в БД Maxs Помощь студентам 5 27.04.2009 14:45