За последние 24 часа нас посетили 17356 программистов и 1198 роботов. Сейчас ищут 1277 программистов ...

Фильтрация записей из базы MySQL

Тема в разделе "PHP для новичков", создана пользователем zbs2000, 23 июн 2012.

  1. zbs2000

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

    С нами с:
    31 май 2012
    Сообщения:
    12
    Симпатии:
    0
    Не подскажете ли?
    Как отфильтровать чекбоксами записи которые выбраны из базы MySQL?

    Фрагмент кода привожу ниже
    <?php
    $tab_mt=mysql_query("SELECT * FROM `mt` WHERE `mt_type`='single'");
    while($re=mysql_fetch_array($tab_mt)){
    ?>

    Дальше пошел цикл вывода. . . .

    Вопрос:
    Можно ли чекбоксами отфильтровать вывод, тоесть выводить не все записи, которые выбраны? Интуитивно чувствую, что делать надо где-то сдесь mysql_fetch_array($tab_mt) или сдесь WHERE `mt_type`='single'"); Но как прикрутить туда чекбоксы?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    еще раз можно, чего вам требуется?
     
  3. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Ага, вообще не понял, что надо.
    Походу js тут нужно =)
     
  4. zbs2000

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

    С нами с:
    31 май 2012
    Сообщения:
    12
    Симпатии:
    0
    Если конкретней, то надо отфильтровать значения которые выбраны из базы запросом. Но все дело в том, что управлять фильтрами должен пользователь на сайте. Уже пока ковырял, то вроде бы нашел путь как это сделать. Пробую выдавать значение чекбокса в массив. Пробую прикрутить чекбоксы и из формы записать значения в массив. Потом его передать и проанализировать. Уже на этот счет есть определенные результаты.
    Только вот загвоздка в том, что не могу методом POST передать переменную, которая в свою очередь является массивом. В POST то я запихнул значения, а как их правильно достать оттуда, как бы и не получается.
    Для проверки выполнил вот это
    <?php
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";
    ?>
    Получил вот єто:
    Array
    (
    [MassivCheckbox] => Array
    (
    [Checkbox_Group_6_id_7] => 7
    )

    [test] => ok
    )


    А как мне теперь правильно обратиться к переменной Checkbox_Group_6_id_7 ???? Просто с синтаксисом что-то не то - что перечитал кучу всего. Если не трудно, я вставлю кусочки кода (это проверочные выражения) - гляньте пож что там не то. Я думаю что если они заработают, то я все пойму. Просто тот код большой и долго с ним Вам будет разбираться. Потому просто выражения -- поправьте пож синтаксис, чтобы я знал, что точно правильно:
    echo "########### 1111 #####";
    print_r($MassivCheckbox);
    echo "########### 2222 #####";
    print_r($_POST[MassivCheckbox]);
    if($_POST['$checkbox_name'] == $res_single2['id']) echo " checked";
    print_r($_POST[MassivCheckbox]);
    echo "########## 3333 #####";
    echo $checkbox_name;
    echo $_POST[MassivCheckbox];
    echo "########## 4444 #####";
    echo $res_single2['id'];
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";
    вот єто почему-то работать не хочет. \/ \/ \/

    if($_POST['$checkbox_name'] == $res_single2['id']) echo " checked";
    стоит тут

    <?php $checkbox_name = "Checkbox_Group_".$res_group2['id']."_id_".$res_single2['id'];?>
    <?php echo "$checkbox_name";?>
    <input type="checkbox" name="MassivCheckbox[<?php echo "$checkbox_name";?>]" id="id_ch<?php echo $res_single2['id'];?>" value="<?php echo $res_single2['id'];?>" <?php if($_POST['$checkbox_name'] == $res_single2['id']) echo " checked";?>>

    Да еще если у кого есть хорошая с примерами (а можно одни примеры) на тему МАССИВЫ, $_POST, checkbox. Но только то что я перечитал не помогло. Не откажите пож. Заранее спасибо.
     
  5. zbs2000

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

    С нами с:
    31 май 2012
    Сообщения:
    12
    Симпатии:
    0
    Методом чтения php.net + интуиция + метод тыка нашел что :
    print_r($_POST[MassivCheckbox][Checkbox_Group_6_id_7]);
    echo $_POST[MassivCheckbox][Checkbox_Group_6_id_7];

    Работает и выдает то что нужно.
    Только теперь бы вместо Checkbox_Group_6_id_7 поставить бы переменную. . . print_r($_POST[MassivCheckbox]['$checkbox_name']); <-- Пробовал так - не работает. Переменная конечно же есть
     
  6. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
    это ты в интересном месте кавычки поставил :)
     
  7. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Жесть.
     
  8. zbs2000

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

    С нами с:
    31 май 2012
    Сообщения:
    12
    Симпатии:
    0
    Спасибо уже нашел
    Вот так надо было
    print_r($_POST[MassivCheckbox]["$checkbox_name"]);

    Еще раз спасибо за ответ
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    print_r($_POST[MassivCheckbox]["$checkbox_name"]); - плохо
    print_r($_POST['MassivCheckbox'][$checkbox_name]); - хорошо