[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ввод данных в БД.
Kekc
Всем доброй ночи!
Есть скрипт:
<?php
if (isset($_POST['s_1']));
{
$rho_n = $_POST['rho_n'];
$pi = $_POST['pi'];
$D_vn = $_POST['D_vn'];
$g = $_POST['g'];
$result_1 = pow(10, -4)*$rho_n*$g*($pi*$D_vn/4);
echo $result_1;
}
{

$res_query_1=mysql_query("INSERT INTO formula_1(rho_n,pi,D_vn,g,result_1)
VALUES
('
$rho_n','$pi','$D_vn','$g','$result_1')");
}
?>


Скрипт осуществляет ввод данных в БД, т.е. я ввожу данные в input, нажимаю на button(именно на button, а не на submit) и цифры в таблице.
Проблема:
В таблицу вводятся 4 строчки данных, первая строка - данные которые я ввёл в inpu, а три остальные по нулям.
AllesKlar
где-то кто-то делает редирект на эту же страницу.
В итоге, первый раз у тебя заносятся данные из $_POST, а в остальных случаях пустые значения.

Нужно проверять переменные перед тем, как их заносить в базу.
Включи вывод ошибок, увидишь.
error_reporting(-1);
ini_set('display_errors', 1);


А вообще, по-хорошему, так данные из $_POST не обрабатываются. Если ты, после того, как нажал кнопку, обновишь страницу в браузере, данные улетят еще раз в базу.

Почитатй на тему Повторная отправка данных из формы
Что-то типа такого:
// my_handler.php
if(isset($_POST['submit']) )
{
$_SESSION['POST'] = $_POST;
header('location: my_handler.php')
exit;
}
else if(! empty($_SESSION['POST']))
{
$post = $_SESSION['POST'];
$_SESSION['POST'] = array();
// обрабатываем данные, которые сохранены в $post
}
else
{
// что-то левое прилетело.
}


_____________
[продано копирайтерам]
Kekc
Есть ещё одна проблема на этой же почве, этот же скрипт вычисляет формулу до нажатия button:
<?php
if (isset($_POST['s_1']));
{
$rho_n = $_POST['rho_n'];
$pi = $_POST['pi'];
$D_vn = $_POST['D_vn'];
$g = $_POST['g'];
$result_1 = pow(10, -4)*$rho_n*$g*($pi*$D_vn/4);
echo $result_1;
}
{

$res_query_1=mysql_query("INSERT INTO formula_1(rho_n,pi,D_vn,g,result_1)
VALUES
('
$rho_n','$pi','$D_vn','$g','$result_1')");
}
?>


 <button name="s_2" id="s_2" >Вычислить</button>

AllesKlar
Ну и пусть себе вычисляет. Где проблема?

Описывай словами весь алгоритм, а то будем долго по переменной из тебя тянуть.

_____________
[продано копирайтерам]
Kekc
Нужно, что бы этот скрипт работал только по нажатию кнопки.

if (isset($_POST['s_1']));
{
$rho_n = $_POST['rho_n'];
$pi = $_POST['pi'];
$D_vn = $_POST['D_vn'];
$g = $_POST['g'];
$result_1 = pow(10, -4)*$rho_n*$g*($pi*$D_vn/4);
echo $result_1;
}


А у меня выводит ответ сразу при открытии страницы на котором скрипт находится!
AllesKlar
ээээ... ????
Цитата (AllesKlar @ 30.05.2015 - 00:54)
// my_handler.php
    if(isset($_POST['submit']) )
    {
        $_SESSION['POST'] = $_POST;
        header('location: my_handler.php')
        exit;
    }
    else if(! empty($_SESSION['POST']))
    {
        $post = $_SESSION['POST'];
        $_SESSION['POST'] = array();
        // обрабатываем данные, которые сохранены в $post
    }
    else
    {
        // что-то левое прилетело.
    }

Вместо
Цитата
        // что-то левое прилетело.

пишешь то, что должно отображаться БЕЗ нажатия кнопки, например, форму.

_____________
[продано копирайтерам]
Kekc
Спасибо огромное.
С уважением к вам!
Kekc
Заменил свой скрипт на ваш:

<?php
include('connect.php');
?>
<?php

if(isset($_POST['knopka']))
{$_SESSION['POST']=$_POST;
header('location:http://localhost/Diplom/Untitled1.php');
exit;
}
else if(! empty($_SESSION['POST']))
{
$post = $_SESSION['POST'];
$_SESSION['POST'] = array();
// обрабатываем данные, которые сохранены в $post
}
else
{
$a=$_POST['1'];
$b=$_POST['2'];
$c=$_POST['3'];
$resultating=$a+$b+$c;
echo $resultating;
}


/*{
$res_query = mysql_query( "INSERT INTO `data`(a,b,c) VALUES ('$a','$b','$c')");
} */

?>


И выходит ошибка:

Warning: Cannot modify header information - headers already sent by (output started at T:\home\localhost\www\Diplom\connect.php:1) in T:\home\localhost\www\Diplom\Untitled1.php on line 7
AllesKlar
тебе в другом посте указали уже.
?>
<?php

ЭТО удалить

_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.