За последние 24 часа нас посетили 66734 программиста и 1615 роботов. Сейчас ищут 953 программиста ...

данные таблицы в mysql

Тема в разделе "PHP для новичков", создана пользователем noreset, 22 ноя 2010.

  1. noreset

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

    С нами с:
    22 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    Всем доброе утро. У меня проблема с добавлением данных их html таблицы в базу данных. У меня есть вот такой код:
    PHP:
    1.  
    2.  
    3. <form method="post">
    4. <table>
    5. <tr>
    6. <td>Иванов</td>
    7. <td> Иван Иванович</td>
    8. <td> <input type="submit" value="Добавить" name="add">
    9. </tr>
    10.  
    11. <tr>
    12. <td>Иванов</td>
    13. <td> Иван Иванович</td>
    14. <td> <input type="submit" value="Добавить" name="add">
    15. </tr>
    16. </table>
    17. </form>
    18.  
    19.  
    20. <?php
    21.  
    22.  
    23. if (isset($_POST['add']))
    24. $add = $_POST['add'];
    25.  
    26. $result = mysql_query ("INSERT INTO 2 ('name', 'fio') VALUES ('$add')");
    27. ?>
    28.  
    29.  
    Ошибок не пишет, но и данные не добавляет).
    Подскажите в чем проблема? Или как данные, взятые внутри тегов <td></td> превратить в переменные, чтобы их передать с помощью пхп в мускул?
    Спасибо
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
  3. noreset

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

    С нами с:
    22 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    Padaboo это не то. или ты имеешь ввиду мне вместо <td>Иванов</td> писать <td><input type="text" name="fio">Иванов</td>? Тогда пользователь будет иметь возможность изменять данные, что не хотелось бы, но тогда обработчику передастся переменная с именем name и все будет ок. Я вот этого и хочу, чтобы ячейке можно было бы присвоить имя, чтобы ее нормально передать, но без input. Это возможно?
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    noreset
    а смысл тогда всего этого, если поменять нельзя?
    можно писать
    <td>Иванов</td>
    <td> Иван Иванович</td>
    и добавить скрытые поля <input type="hidden" name="name" value="Иванов">
    в общем все равно инпуты, но менять их значения из браузера легко
     
  5. noreset

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

    С нами с:
    22 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    просто у меня до этого есть форма, где чел выбирает к примеру свое имя, после чего жмет далее и выходит таблица, где первый столбец его имя, а остальные какие либо параметры. Он должен выбрать нужную ему строчку, нажать Добавить и чтобы эта строка записалась в базу. Вот как то так мне надо. Но эти параметры он не должен исправлять
     
  6. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    в сессию записывай тогда
     
  7. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1) INSERT INTO 2- нет названия таблицы
    2) количество полей ввода 2, а количество значений 1- должно быть тоже 2
    3) я бы сделал как предлагает Padaboo
    HTML:
    1.  
    2.  
    3.  <form method="post">
    4.   <table>
    5.   <tr>
    6.   <td>Иванов</td>
    7.   <td> Иван Иванович</td>
    8.   <td> <input type="submit" value="Добавить" name="add">
    9.   </tr>
    10.  
    11.  
    12.   </table>
    13.  
    14. <input type="hidden" name="fio" value="Иванов">
    15. <input type="hidden" name="name" value="Иван Иванович">
    16. <input type="submit" value="Добавить" name="add">
    17. </form>
    18.  
     
  8. noreset

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

    С нами с:
    22 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    ладно, ща попробую, что получится и отпишусь
     
  9. noreset

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

    С нами с:
    22 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    что то не получается. при нажатии на кнопку, вообще никакой реакции. Если делать как runner написал, то там работает, только если кнопку лишнюю вставить, помимо таблицы. Блин, может как то не таблицей этот вывод сделать?
    Я вобщем хочу сделать онлайн запись как вот на этом сайте http://www.mrkb.altvis.ru/. Если хотите то посмотрите. Там где полис введите - 123123, а где др - 1988-11-13. потом жмете записаться на прием. там выбираете врача и дату и Обновить. И выходит та самая таблица, на подобие которой я и хочу сделать. Уже тут все перепробовал, а вот так что то не выходит, чтобы нажать на Записаться, заносилась эта строка в базу. помогите плззз
     
  10. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1) Наверняка при регистрации в системе номер полиса и дата рождения проверяются с данными в таблице полисов. Если есть полис, то допускается в систему, а если нет, то снова на форму ввода данных полиса. Если полис найден, то данные полиса и данные владельца полиса можно хранить в сессионных переменных.
    2) Далее использовать данные из этих сессионных переменных по своему усмотрению:
    для вывода или для записи в базу.
    3) лучше хранить данные держателя полиса в одной таблице, сами полисы в другой, а в таблице записей на прием хранить только идентификатор полиса.

    Тогда форму можно выводить используя сессионные переменные
    $_SESSION['name']="Иван Иванович";
    $_SESSION['fio']="Иванов";
    HTML:
    1.  
    2.  <form method="post">
    3.    <table>
    4.    <tr>
    5.     <td><?php echo $_SESSION['fio'];?></td>
    6.     <td> <?php echo $_SESSION['name'];?></td>
    7.     <td> <input type="submit" value="Добавить" name="add"></td>
    8.     </tr>  
    9.     </table>  
    10.  
    11.   </form>
    12.  
    и запись в базу

    $result = mysql_query ("INSERT INTO 2 ('name', 'fio') VALUES ('{$_SESSION['name']}','{$_SESSION['fio']}')");

    Если у тебя система вообще другая, то принцип тот же самый
    1) При успешной регистрации пользователя хранишь его данные в сессионных переменных
    2) где нужно используешь данные пользователя из сессионных переменных
     
  11. noreset

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

    С нами с:
    22 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    хорошо, попробую, спасибо. Результат напишу
     
  12. noreset

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

    С нами с:
    22 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    да, все нормально, спасибо всем.

    Если разрешите, я еще задам последний вопрос, наверно глуповатый, но все таки)))

    вот есть форма
    HTML:
    1.  
    2. <select class="text" name="spec">
    3.  
    4.         <option>Иванов</option>
    5.         <option>Петров</option>
    6.         <option>Сидоров</option>
    7.  
    8. <input name="Submit" type="Submit" value="Далее>>"  />
    9.  
    ставлю вот такое условие:
    PHP:
    1.  
    2. <?
    3. if ($_POST['spec'] == 'Иванов')
    4.     {
    5.         include ("1.php");
    6.     }
    7. if ($_POST['spec'] == 'Петров')
    8.     {
    9.         include ("2.php");
    10.     }
    11. if ($_POST['spec'] == 'Сидоров')
    12.     {
    13.         include ("3.php");
    14.     }
    15. ?>
    16.  
    Вот, это все у меня хорошо работает, но вот проблема в том, что я хочу, чтобы при выборе из списка например Петрова и после нажатия на кнопку далее, чтобы Петров оставался в списке selected. А я когда выбераю Петрова и жму далее, выходит мой include, но в списке опять Иванов переключается. Можно как нибудь сделать, чтобы при выборе кого либо он оставался на месте при нажатии на Submit?
     
  13. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1) вообще-то опциям полагается еще и атрибут value. В данном случае видимо это идентификатор пользователя
    2) обычно, при выводе опций какой-то опции ставят атрибут selected, который определяет, что эта опция выбрана
    3) при выборе Петров нужно просто запомнить его код, а при выводе списка опций поставить ему атрибут selected

    Вот каким должен быть вывод до выбора
    HTML:
    1.  
    2.  <select class="text" name="spec">
    3.  
    4.           <option id=1 selected>Иванов</option>
    5.           <option id=2 >Петров</option>
    6.           <option id=3 >Сидоров</option>
    7.   </select>
    8.  
    9.   <input name="Submit" type="Submit" value="Далее>>"  />
    10.  
    а таким после выбора Петров

    HTML:
    1.  
    2.  <select class="text" name="spec">
    3.  
    4.           <option id=1 >Иванов</option>
    5.           <option id=2 selected>Петров</option>
    6.           <option id=3 >Сидоров</option>
    7.   </select>
    8.  
    9.   <input name="Submit" type="Submit" value="Далее>>"  />
    10.  
     
  14. noreset

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

    С нами с:
    22 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    runner поясни пожалуйста, мне ставить какое то условие, чтобы при выборе например Петрова ему ставился selected?
    просто это все обрабатывается на одной странице и если я буду ставить второй блог с <option id=2 selected>Петров</option>, то их там будет 2.
     
  15. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    Приведя два блока кода я имел в виду просто как должен выглядеть HTML-код в самом начале и после выбора посетителя. В самом начале, в качестве выбранной опции можно выбрать какую-нибудь произвольную опция или не выбирать вообще, а после выбора посетителя, для выбранной опции нужно установить атрибут selected


    PHP:
    1.  
    2. //проверка - нажата ли кнопка
    3. if(isset($_POST['Submit']) and isset($_POST['spec']))
    4. {
    5.  
    6.       $selected=$_POST['spec'];    // для выбранной опции установить атрибут selected
    7. }
    8. else
    9. {
    10.       $selected='';  // ничего не устанавливаем
    11. }
    12. // пусть опции хранятся в массиве options типа код=>имя
    13. //$options[1]="Иванов";
    14. //$options[2]="Петров";
    15. //$options[3]="Сидоров";
    16. // выводим опции с учетом выбранной опции
    17. $o=array();
    18. $o[]='<select class="text" name="spec">';
    19. foreach($options as $id=>$name)
    20. {
    21.       // опция выбрана?
    22.       if($id==$selected)
    23.       {
    24.             $sel_attrb="selected";
    25.       }
    26.       else
    27.      {
    28.             $sel_attrb="";
    29.      }  
    30.      $o[]="<option value=\"{$id}\" {$sel_attrb}>{$name}</option>";
    31. }
    32.  
    33. echo implode('',$o);
    34.  
    35.  
     
  16. noreset

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

    С нами с:
    22 ноя 2010
    Сообщения:
    18
    Симпатии:
    0
    понял, runner спасибо. блин. реально выручили :)