Запросы $_POST

Тема в разделе "PHP", создана пользователем LOMANI, 7 фев 2013.

  1. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    не могу правильно, корректно и с мозгом сформировать запросы из формы в скрипт

    На данный момент всё работает при условии что все поля в форме заполнены и все галочки checkbox стоят
    нужно сделать их независимыми друг от друга и с проверкой на заполнение т.е. если не заполнено, то не учитывать.
    знаю идет это через функцию if(isset($_POST['***'])) но правильно прикрутить её не могу
     
  2. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    Эта функция всего лишь проверяет пришел ли параметр '***' методом POST и выдает true если таковой имеется.
     
  3. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    alxndr52, прикинь - я вкурсе... вроде так и написал
    только я его правильно применить не могу, а вот 2ю часть вопроса я хз как сделать
     
  4. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    PHP:
    if(isset($_POST['***'])) {
    $a $_POST['***'];
     
    echo 
    $a;
     
    }
     
  5. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.051
    Симпатии:
    779
    Вообще, isset в данном случае, мне кажется, несовсем то. Здесь больше подойдёт empty.
    PHP:
    `". empty($_POST['img'])?:$_POST['img'] ."` = '' OR
     
  6. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    Да соглашусь но с isset как вариант то же имеет право жить
     
  7. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    перестал работать запрос
    если раньше запрос работал при наличии всех галочек и текста, то щас никак
    PHP:
    // SQL-запрос:
    $q mysql_query ("SELECT `name`, `path` FROM `".$_POST['table_db']."` WHERE `active` = 1 AND
    `"
    . empty($_POST['pict'])?:$_POST['pict'] ."` = '' OR
    `"
    . empty($_POST['img'])?:$_POST['img'] ."` = '' OR
    `"
    . empty($_POST['pict_alt'])?:$_POST['pict_alt'] ."` = '' OR
    `"
    . empty($_POST['img_alt'])?:$_POST['img_alt'] ."` = '' OR
    `"
    . empty($_POST['rus_tpl'])?:$_POST['rus_tpl'] ."` = '' OR
    `"
    . empty($_POST['eng_tpl'])?:$_POST['eng_tpl'] ."` = '' OR
    `desc` < "
    .$_POST['text1']." OR
    `tech` < "
    .$_POST['text2']."");
     
  8. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    PHP:
    $q mysql_query ("SELECT `name`, `path` FROM `".$_POST['table_db']."` WHERE `active` = 1 AND
     
    `` = '' OR <----------------------------------------  а так будет работать?
     
    `"
    . empty($_POST['img'])?:$_POST['img'] ."` = '' OR
     
    `"
    . empty($_POST['pict_alt'])?:$_POST['pict_alt'] ."` = '' OR
     
    `"
    . empty($_POST['img_alt'])?:$_POST['img_alt'] ."` = '' OR
     
    `"
    . empty($_POST['rus_tpl'])?:$_POST['rus_tpl'] ."` = '' OR
     
    `"
    . empty($_POST['eng_tpl'])?:$_POST['eng_tpl'] ."` = '' OR
     
    `desc` < "
    .$_POST['text1']." OR
     
    `tech` < "
    .$_POST['text2']."");
    Зачем проверять наличие параметра еси при его отсутствии будет выведено empty($_POST['img'])?:$_POST['img'] вот это `` = '' OR и что должен искать sql
    возможно ненравится ?: попробуй так ? :
     
  9. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    тож самое... срабатывают только echo

    смысл такой.... если какой то из этих параметров (те что чекбоксы, не текст) пустой (в базе они именно пустые или "знаки", а не null \ 0 и т.д.) то должно выводить name (имя) и path(ссылка)
    параметры текста (`desc` < ".$_POST['text1']." OR `tech` < ".$_POST['text2']."");) проверяются на количество знаков (в базе поля пустые или есть "знаки")

    общий смысл пост запросов, сам по себе скрипт работает , первоначальном виде и выводит информацию...проверяя её при этом по всем пунктам, а мне нужно чтоб была возможность проверять те пункты которые я хочу , т.е. только по img или img + pict_alt или desc , вообщем чтоб любая компоновка запроса была

    неизменна только одна часть SELECT `name`, `path` FROM `".$_POST['table_db']."` WHERE `active` = 1 AND
     
  10. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    такой вариант не прокатит
    PHP:
    $q "SELECT `name`, `path` FROM `".$_POST['table_db']."` WHERE `active` = 1 AND ";
     
    if (empty(
    $_POST['img']))  { $q $q.$_POST['img']."` = '' OR";}
     
    Здесь остальные IF
     
     
     
    $sql mysql_query ($q);
     
  11. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    как не прокатит и как попробовать?

    з.ы. попробовал заменить весь запрос на то что ты написал, не сработало (параметры img менял на другие)
     
  12. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    PHP:
    $q "SELECT `name`, `path` FROM `".$_POST['table_db']."` WHERE `active` = 1 AND ";
     
    if (empty(
    $_POST['img']))  { $q $q.$_POST['img']."` = '' OR";}
     
    echo 
    $q
    что выдаст echo
     
  13. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    амммм
    SELECT `name`, `path` FROM `seriya` WHERE `active` = 1 AND
     
  14. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    PHP:
     $q "SELECT `name`, `path` FROM `".$_POST['table_db']."` WHERE `active` = 1 AND ";
     
    if (!empty(
    $_POST['img']))  { $q $q.$_POST['img']."` = '' OR";}
     
    echo 
    $q;  
    Я на косячил
    Возвращаемые значения

    Возвращает FALSE, если var содержит непустое и ненулевое значение.
    Следующие значения воспринимаются как пустые:
    • "" (пустая строка)
    • 0 (целое число)
    • 0.0 (дробное число)
    • "0" (строка)
    • NULL
    • FALSE
    • array() (пустой массив)
    • var $var; (переменная объявлена, но не имеет значения в классе)
     
  15. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    SELECT `name`, `path` FROM `seriya` WHERE `active` = 1 AND img` = '' OR
    --- добавлено: 7 фев 2013 в 14:22 ---
    добавил чутка { $q = $q."`".$_POST['img']."` = '' OR";}
     
  16. saxum2010

    saxum2010

    Регистрация:
    6 фев 2013
    Сообщения:
    111
    Симпатии:
    34
    PHP:
    foreach ($_POST as $key=>$item)
    {
    $where .= " OR " $key "='" $item "'"
    }
     
    $q "SELECT `name`, `path` FROM `seriya` WHERE `active` = 1 " $where;
     
  17. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
    saxum2010, можешь пояснить?

    з.ы. `active` = 1 обязательно, так что после него AND
    --- добавлено: 7 фев 2013 в 16:54 ---
    чтот не работает система, пытался значи доставить, но всё= не катит
     
  18. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    а мой вариант не пробовал
    PHP:
    $q "SELECT `name`, `path` FROM `".$_POST['table_db']."` WHERE `active` = 1 AND ";
     
    if (!empty(
    $_POST['img']))  { $q $q.$_POST['img']."` = '' OR";}
     
    echo 
    $q
     
  19. LOMANI

    LOMANI

    Регистрация:
    18 янв 2013
    Сообщения:
    76
    Симпатии:
    5
     
  20. alxndr52

    alxndr52

    Регистрация:
    5 фев 2013
    Сообщения:
    35
    Симпатии:
    13
    а запрос к файлу index.php?img=что-то