За последние 24 часа нас посетил 19521 программист и 1609 роботов. Сейчас ищут 1020 программистов ...

Данные вводятся в БД при открытии страницы!Как исправить?

Тема в разделе "PHP и базы данных", создана пользователем Евгений_Rus31, 20 апр 2011.

  1. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    Немного изменил код и заработало вот только в полях остаются символы которые я ввел как поля обнулить?
    Вот код:
    <?php
    include "config.php";
    $err='';
    if(isset($_POST['add']))
    {
    $email = $_POST['email'];
    $address = $_POST['address'];
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $pattern = '/[0-9]/';

    $p=preg_match($pattern, $last_name);
    if($p==1)
    {
    $err.="Неверно введена фамилия<br>";
    }
    $p=preg_match($pattern, $first_name);
    if($p==1)
    {
    $err.="Неверно введено имя<br>";
    }
    if($err=='')
    {
    $sql = 'INSERT INTO members(email, address, first_name, last_name) VALUES("'.$email.'", "'.$address.'", "'.$first_name.'", "'.$last_name.'")';
    if(!mysql_query($sql))
    {
    echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';
    }
    else
    {
    // тут действия при успешном добавлении данных

    }
    }
    }

    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Страница управления</title>
    </head>
    <body>
    <?php
    if($err!='')
    {
    echo $err;
    }

    echo "<form method='post' action=''>
    Введите имя: <input type='text' size='30' name='first_name' value='$first_name' /><br />
    Введите фамилию: <input type='text' size='30' name='last_name' value='$last_name' /><br />
    Введите E-mail: <input type='text' size=45 name='email' value='$email' /><br />
    Введите адрес: <input type='text' size='100' name='address' value='$address'/><br />
    <input type='submit' value='Добавить запись' name='add'/>
    </form>";
    ?>
    </body>
    </html>
     
  2. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    О вы уже ответили а я не успел прочитать отправил раньше!Я хочу что б форма осталась она и остается но с символами в полях как их убрать? и зачем в конце:
    else
    {
    $email = '';
    $address = '';
    $first_name = '';
    $last_name = '';
    }

    код и без него работает не могу понять его функцию
     
  3. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1)Тебе нужно выводить форму с уже введенными значениями, если была ошибка ввод, и с пустыми значениями в самом начале. Код вывода формы же у тебя всего один. Это можно сделать только с помощью переменных. Как видно из кода, значения этих переменных формируются по-разному
    Код
    else
    {
    $email = '';
    $address = '';
    $first_name = '';
    $last_name = '';
    }
    как раз и присваивает пустые значения переменным если не нажата кнопка
    2) Таким образом после успешного добавления записи, нужно присвоить пустые значения этим переменным, чтобы форма "обнулилась"
     
  4. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    Спс все понятно! При успешном вводе нужно просто сделать так как было в начале когда форма была пустой.
     
  5. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    Кстати даже когда кнопка не нажата поля пустые и без этого кода:
    else
    {
    $email = '';
    $address = '';
    $first_name = '';
    $last_name = '';
    }
     
  6. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    Здраствуйте! Нужна опять ваша помощь! Когда я ввоже текст в нижнее поле и нажимаю отправить нужно что б текст высвечивался в верхнем поле и при последущем вводе текст появлялся ниже того что был введен ранее а верхний текст не стирался. И как сделать верхнее поле таким что б там нельзя было набирать символы, что б оно было только для вывода на экран и всё! Типа чата! Заранее благодарю!
     
  7. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    Вот код:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"
    <title>Тест 3</title>
    </head>
    <body>

    <form action="" method="GET">

    <textarea name='vivod' cols=60 rows=20 wrap=Virtual>

    </textarea>
    </br>
    </br>

    <textarea name='vvod' cols=60 rows=20 wrap=Virtual>

    </textarea>
    <input type='submit' value='Отправить' name="add">


    </form>
    <?php
    $textik = @$_GET['vvod'];
    echo $textik;
    ?>

    </body>
    </html>
     
  8. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    для этого существует атрибут disabled
    HTML:
    1.  
    2. <textarea name='vivod' cols=60 rows=20 wrap=Virtual disabled="disabled">
    3.  
     
  9. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    а как сделать так что б в textarea name='vivod' выводились символы вводимые в нижнем поле????
     
  10. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    спс за атрибут disabled все работает! Только остальные вопросы остались открытыми.
     
  11. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    У тебя все введенное записывается в какую то то таблицу. Значит нужно просто выбрать все записи из этой таблицы, отсортированные в порядке убывания времени добавления, ну и вывести их. При этом вовсе необязательно выводить в textarea
     
  12. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    runner Думаешь записывается? )))

    Евгений_Rus31 Надо записывать введенные ранее сообщения куда-нибудь, например в файл, или базу данных, и каждый раз выбирать их из хранилища и выводить.
     
  13. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    Дело в том что мне их сразу надо выводить при нажатии кнопки. А старые сообщения что б висели выше! Т.е. их надо сохранять и постоянно что б они выводились на экран? А база данных не будет засорятся от многочисленных символов??? И если выводить не в textarea то куда еще где еще прокрутка есть ??
     
  14. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Евгений_Rus31

    Да, их надо где-то сохранять.

    База данных не засоряется, можно хранить тысячи и миллионы строк данных.
     
  15. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    Хорошо спасибо! А можно что б в textarea было допустим 1000 строк после чего старые строки стираются, т.е. видимых строк в textarea бедет 1000 и когда вводим новую строку старая строка в самом верху стирается с textarea и с таблицы в БД.
     
  16. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
  17. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    как организовать такой код?
     
  18. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    В таблицу добавляется а как сделать что б выводило в верхний textarea и постоянно там был текст который раньше вводился?? А когда новый добавляешь то он так же сохранялся и выводился на экран ток в нижнюю строчку??
    Вот код:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"
    <title>Тест 3</title>
    </head>
    <body>


    <?php
    include "config.php";
    if(isset($_GET['vvod']))
    {
    $s=$_GET['vvod'];
    $sql = 'INSERT INTO text(info)
    VALUES("'.$s.'")';

    if(!mysql_query($sql))
    {
    echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';
    }

    }
    else
    {
    $s='';

    }

    ?>
    <form action="" method="GET">
    <textarea name='vivod' cols=60 rows=20 wrap=Virtual disabled="disabled">
    <?php echo $s; ?>
    </textarea>
    </br>
    </br>

    <textarea name='vvod' cols=60 rows=20 wrap=Virtual>

    </textarea>
    <input type='submit' value='Отправить' name="add">
    </form>
    </body>
    </html>
     
  19. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    подскажите как запихнуть выводимые данные в верхний textarea? намудрил и сам запутался))
    Вот код:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"
    <title>Тест 3</title>
    </head>
    <body>


    <?php
    include "config.php";
    if(isset($_GET['vvod']))
    {
    $s=$_GET['vvod'];
    $sql = 'INSERT INTO text(info)
    VALUES("'.$s.'")';

    if(!mysql_query($sql))
    {
    echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';
    }
    }
    else
    {
    $s='';

    }
    $sll=mysql_query ("SELECT info FROM text");
    if (!$sll)

    {
    echo('Неверный запрос: '. mysql_error());
    }


    else {

    while ($row = mysql_fetch_assoc($sll))

    {
    echo '
    '.$row["info"].'<br />
    ';

    }
    }

    ?>
    <form action="" method="GET">
    <textarea name='vivod' cols=60 rows=20 wrap=Virtual disabled="disabled">
    </textarea>

    </br>
    </br>

    <textarea name='vvod' cols=60 rows=20 wrap=Virtual>
    </textarea>
    <input type='submit' value='Отправить' name="add">
    </form>
    </body>
    </html>
     
  20. Евгений_Rus31

    Евгений_Rus31 Активный пользователь

    С нами с:
    20 апр 2011
    Сообщения:
    61
    Симпатии:
    0
    Не могу понять что делать с переменной $s . Че то она у меня воще гуляет и нигде не задействована