1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Перехват всех полей формы на php

Тема в разделе "Web Coding", создана пользователем morgan_spb, 19 ноя 2006.

Статус темы:
Закрыта.
Модераторы: latteo
  1. morgan_spb

    morgan_spb Постоялец

    Регистр.:
    15 сен 2006
    Сообщения:
    55
    Симпатии:
    1
    задумался над такой штукой

    имеем форму

    она генерится выдергивая из базы строку таблицы

    допустим

    <form>
    <input type hidden name="content_id" value=" 12">
    <input type text ... что то там name="имя поля " value="значение поля">
    <input type text ... что то там name="имя поля2 " value="значение поля2">
    <input type text ... что то там name="имя поля3 " value="значение поля3">
    <input type text ... что то там name="имя поля4" value="значение поля4">

    <submit>
    </form>



    после нажатия на сабмит система должна взять этот набор полей и обновить его в базе

    $query = "
    REPLACE INTO
    ".$table."
    VALUES
    ('$contentid',
    '$active',

    а вот сюда я хочу вывести весь набор значений которые были в форме



    )";


    как бы это сделать?



    где-то видел такой код, но не знаю как его прикрутить

    $keys = array();
    $values = array();

    while (list($key, $value) = each($module))
    {
    $keys[] = $key;
    $values[] = $value;
    }

    $query = "INSERT INTO ".$table['tbl_modules']." (";
    $query .= implode(", ", $keys);
    $query .= ") VALUES ('";
    $query .= implode("', '", $values);
    $query .= "')";
     
  2. MisterX

    MisterX Постоялец

    Регистр.:
    10 ноя 2006
    Сообщения:
    101
    Симпатии:
    7
    В данном случае все данные, переданные скрипту, содержаться в массиве $_GET.
    Соответственно, для перебора этих значений можно написать так:

    foreach($_GET as $key => $value)
    {
    // $key - имя поля
    // $value - его значение
    }

    И в цикле уже используешь значения так как тебе это нужно. Непонятно только зачем это нужно - ведь в таблице все равно фиксированное число столбцов.
     
  3. morgan_spb

    morgan_spb Постоялец

    Регистр.:
    15 сен 2006
    Сообщения:
    55
    Симпатии:
    1
    нашел решение
    пока юзаю его

    <?php
    mysql_connect("localhost","root","");
    $db="blogs";
    $table="notes";
    mysql_select_db($db);
    $field_names = array();
    //Отсюда можно убрать, если в $field_names вручную занести имена полей
    $res = mysql_query("SHOW COLUMNS FROM `$table`");
    for($i=0;$i<mysql_num_rows($res);$i++){
    array_push($field_names,mysql_result($res, $i));
    }
    //И до сюда
    foreach($field_names as $v){
    $int.="`$v`,";
    if(!empty($_POST[$v]))
    $val.="'$_POST[$v]',";
    else
    $val.="'',";
    }
    $query="INSERT INTO $table(".substr($int,0,-1).") VALUES(".substr($val,0,-1).");";
    echo $query;
    ?>
     
Статус темы:
Закрыта.