Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
4 / 4 / 1
Регистрация: 18.02.2010
Сообщений: 195

Создание фильтрации данных из массивов

24.12.2011, 13:10. Показов 1624. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я новичок в PHP, мало навыков. Учу язык на простеньких примерах кода. Вот у меня такой вопрос, у меня есть форма, в которую я ввожу данные, которые мне нужны вывести в генерируемую таблицу из 3 массивов (через MySQL можно, но пока не умею), например. В итоге, чтобы получился фильтр данных. Напишите пожалуйста пример кода такой базовой задачи, как фильтрация на моем примере, буду очень благодарен за помощь.



У меня есть такая вот форма:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<table>
  <tr>
    <td><strong>Город вылета:</strong></td>
    <td>
    <select>
    <option selected="selected" name="krasnoyarsk" value="krasnoyarsk">Красноярск</option>
    </select></td>
  </tr>
  <tr>
    <td><strong>Страна:</strong></td>
    <td>
    <select>
    <option selected="selected" name="thailand" value="thailand">Тайланд</option>
    <option name="egypt" value="egypt">Египет</option>
    </select>    </td>
  </tr>
  <tr>
    <td><strong>Дата:</strong></td>
    <td>с <input size="6" type="date" name="date1" value="<? echo date("d.m.Y", time()); ?>"> по <input size="6" type="date" name="date2" value="<? echo date("d.m.Y",time());?>"></td>
  </tr>
  <tr>
    <td><strong>Кол-во суток:</strong></td>
    <td>
    от <input type="text" size="2" value="7"> до <input type="text" size="2" value="14"></td>
  </tr>
  <tr>
    <td height="33"><strong>Гостиница:</strong></td>
    <td>
    <input type="radio" name="star0" value="star2">2*
    <input type="radio" name="star0" value="star3">3*
    <input type="radio" name="star0" value="star4">4*
    <input type="radio" name="star0" value="star5">5*
    </td>
  </tr>
  <tr>
    <td><strong>Питание:</strong></td>
    <td><label>
      <input type="checkbox" name="BB" value="BB">ВВ</label>    </td>
  </tr>
  <tr>
    <td><strong>Цена:</strong></td>
    <td><label>
      <input type="text" name="price" value="">
    </label></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Посчитать"></td>
  </tr>
</table>
</form>
И есть допустим 3 массива:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$thailand_74019 = array (
'city' => 'Красноярск',
'country' => 'Тайланд',
'date' => 24.12.2012,
'days' => 9,
'hotel' => array('stars' => 3, 'hotelname' => 'PGS Hotel Chang Park Resort & SPA 3*'),
'food' => True,
'man' => 2,
'price' => 74019);
 
$thailand_43373 = array (
'city' => 'Красноярск',
'country' => 'Тайланд',
'date' => 18.12.2011,
'days' => 13,
'hotel' => array('stars' => 3, 'hotelname' => 'Jomtien Holiday Hotel 3*'),
'food' => True,
'man' => 2,
'price' => 43373);
 
$egypt_49893 = array (
'city' => 'Красноярск',
'country' => 'Тайланд',
'date' => 09.12.2011,
'days' => 11,
'hotel' => array('stars' => 4, 'hotelname' => 'Jomtien Holiday Hotel 4*'),
'food' => True,
'man' => 2,
'price' => 49893);
А потом вывести их в таблице, например в такой:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<table border="0" width="100%">
  <tr>
    <th>Город</th>
    <th>Страна</th>
    <th>Дата</th>
    <th>Суток</th>
    <th>Гостиница</th>
    <th>Питание</th>
    <th>Человек</th>
    <th>Цена</th>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
Добавлено через 16 часов 59 минут
помогите

Добавлено через 35 минут
либо подскажите как решить такую задачу
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.12.2011, 13:10
Ответы с готовыми решениями:

Создание фильтрации в С++
Здравствуйте помогите организовать фильтрацию через ADOTable, SQL не могу использовать так как он уже связан с таблицей и используется....

Создание фильтрации по полю со списком
Создание фильтрации по полю со списком -_- забыла как делать. на form1 по полю фио должна фильтроваться инфа на форме. чето у меня не...

Создание сети с сервером фильтрации
Добрый вечер! Помогите, пожалуйста, кто чем может. Ситуация такая: необходимо пустить интернет через ноутбук для раздачи его на...

5
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
24.12.2011, 14:50
Что именно тебе надо фильтровать?
1
4 / 4 / 1
Регистрация: 18.02.2010
Сообщений: 195
24.12.2011, 14:58  [ТС]
вывод данных, допустим в форме задаешь значения, а потом выводятся на страницу массивы, которые удовлетворяют этим значениям
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
24.12.2011, 15:30
Пример:
PHP
1
2
3
if(isset($_POST['country']) && $_POST['country'] == 'thailand'){
echo "Тайланд";
}
У тебя не правильно сделана форма. В input'е name - это имя в массиве $_POST.

Тоесть надо не так

PHP
1
2
3
4
5
6
7
8
<tr>
    <td><strong>Страна:</strong></td>
    <td>
    <select>
        <option selected="selected" name="thailand" value="thailand">Тайланд</option>
    <option name="egypt" value="egypt">Египет</option>
        </select>    </td>
  </tr>
а так:

PHP
1
2
3
4
5
6
7
8
<tr>
    <td><strong>Страна:</strong></td>
    <td>
    <select>
        <option selected="selected" name="country" value="thailand">Тайланд</option>
    <option name="country" value="egypt">Египет</option>
        </select>    </td>
  </tr>
Как видишь, value - разное, а name - одинаковый.

Теперь при выборе значения Тайланд, в $_POST['country'] будет "thailand", при выборе значения Египет, в $_POST['country'] будет "egypt".

И такая ошибка у тебя везде.
1
Рождён удивлять
53 / 56 / 9
Регистрация: 08.08.2011
Сообщений: 438
24.12.2011, 16:33
Пользуйся цыклом foreach()
0
4 / 4 / 1
Регистрация: 18.02.2010
Сообщений: 195
25.12.2011, 08:56  [ТС]
Сейчас у меня такой код, но я нажимаю посчитать, ничего не появляется.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<table>
  <tr>
    <td><strong>Город вылета:</strong></td>
    <td>
    <select>
    <option selected="selected" name="city" value="krasnoyarsk">Красноярск</option>
    </select></td>
  </tr>
  <tr>
    <td><strong>Страна:</strong></td>
    <td>
    <select>
    <option selected="selected" name="country" value="thailand">Тайланд</option>
    <option name="country" value="egypt">Египет</option>
    </select>    </td>
  </tr>
  <tr>
    <td><strong>Дата:</strong></td>
    <td>с <input size="6" type="date" name="date1" value="<? echo date("d.m.Y", time()); ?>"> по <input size="6" type="date" name="date2" value="<? echo date("d.m.Y",time());?>"></td>
  </tr>
  <tr>
    <td><strong>Кол-во суток:</strong></td>
    <td>
    от <input type="text" size="2" value="7"> до <input type="text" size="2" value="14"></td>
  </tr>
  <tr>
    <td height="33"><strong>Гостиница:</strong></td>
    <td>
    <input type="radio" name="star0" value="star2">2*
    <input type="radio" name="star0" value="star3">3*
    <input type="radio" name="star0" value="star4">4*
    <input type="radio" name="star0" value="star5">5*
    </td>
  </tr>
  <tr>
    <td><strong>Питание:</strong></td>
    <td><label>
      <input type="checkbox" name="BB" value="BB">ВВ</label>    </td>
  </tr>
  <tr>
    <td><strong>Цена:</strong></td>
    <td><label>
      <input type="text" name="price" value="">
    </label></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Посчитать"></td>
  </tr>
</table>
</form>
 
<?php
if(isset($_POST['country']) && $_POST['country'] == 'thailand'){
echo "Тайланд";
}
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.12.2011, 08:56
Помогаю со студенческими работами здесь

Создание фильтрации результатов по выбранным параметрам в Excel 2010
Есть файл Excel, состоящий из 11-ти листов: 1) Главная 2) Общие данные 3-11) Январь-Декабрь На листе &quot;Главная&quot;...

Фильтрации данных по полю
&lt;div&gt; &lt;h3 align=&quot;center&quot;&gt; &lt;p&gt;ДАННЫЕ ПОЛЬЗОВАТЕЛЯ&lt;/p&gt; &lt;/h3&gt; &lt;table border='1'&gt; &lt;tr&gt; ...

Совет по фильтрации данных
Здравствуйте, как новичок в c# столкнулся с трудностями с фильтрации данных в таблице. Имеется большая БД (sql server), которую я сортирую...

проблемы фильтрации данных
всем доброй ночи! подскажите пожалуйста какможно решить следующую проблему. я использую компонент TADO TABLE, в часности его свойство...

Ошибка в фильтрации данных
Сначала выдает ошибку в строке Form1-&gt;AT5-&gt;IndexFieldNames=&quot;&quot;;, я взял название поля в и та же ошибка появилась в последней строке а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru