2011-06-10 3 views
2

Мне нужна помощь по фильтрации данных в базе данных. Я хочу фильтр, как в таблице Excel.PHP - Фильтрация данных в таблице

Например, у меня есть этот пример кода о том, как получить данные от w3school о том, как выбирать данные из базы данных. Вот мой пример кода:

<?php 
$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("TableTest", $con); 

$result = mysql_query("SELECT * FROM Colors "); 

echo "<table border='1'> 
<tr> 
<th>Colors</th> 
<th>Type</th> 
</tr>"; 

while($row = mysql_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['colors'] . "</td>"; 
    echo "<td>" . $row['type'] . "</td>"; 
    echo "</tr>"; 
    } 
echo "</table>"; 

mysql_close($con); 
?> 

enter image description here

Я также нашел эту sample тоже в W3School, но я не хочу, чтобы отфильтровать базу данных с падением вниз.

Я хотел бы сделать это как фильтр excel. Когда я выбираю столбец «Цвета» для фильтрации «Красный», он отображает только красный цвет. Поэтому мне было интересно, может ли кто-нибудь помочь мне в том, как начать.

Спасибо всем

+1

В этой статье рассказывается о том, как использовать jQuery и его плагины для добавления функциональности в таблицу HTML на вашем веб-сайте. http://www.tripwiremagazine.com/2009/12/25-highly-useful-jquery-plugins-bringing-life-back-to-html-tables.html – GordyD

+0

Или используйте этот плагин. Http: //dev.sencha.ком/развернуть/внутр-4.0.0/примеры/сетка-фильтрация/сетка-фильтр-local.html – GordyD

ответ

6
$result = mysql_query("SELECT * FROM Colors WHERE color='Red'"); 
3

Когда пользователь выбирает цвет, перенаправлять его на той же странице с переменной в $ _GET, содержащего цвет он выбран. Затем проверьте в вашем коде, если переменная $ _GET, содержащий цвет существует:

if(isset($_GET['color'])) 
    result = mysql_query("SELECT * FROM Colors WHERE color='".htmlentities($_GET['color'])."'"); 
else 
    result = mysql_query("SELECT * FROM Colors"); 
2

Вам нужно будет создать форму, содержащую поле со списком, содержащий список цветов, которые пользователь может выбрать из. В свою очередь, эта форма должна будет отправить переменную обратно на страницу, которую PHP затем предоставит MySQL для фильтрации таблицы результатов.

Фильтрация таблицы результатов в одиночку только красный будет сделано с помощью:

$result = mysql_query("SELECT * FROM Colors WHERE color='Red'"); 

Однако для фильтрации, который основан на форме размещения на странице будет требовать что-то вроде этого:

$result = mysql_query("SELECT * FROM Colors WHERE color='".mysql_escape_string($_REQUEST['color'])."'"); 

Где «color» - это имя переменной, которая была отправлена ​​на страницу, содержащую имя цвета, который вы хотите фильтровать.

1

Я знаю, что я слишком поздно, но, возможно, есть люди, которые ищут решение. Все, что я знаю об этом случае является то, что вы просто

$result = mysql_query(" 
     SELECT * FROM database_name 
     WHERE Color LIKE 'Red%' 
"); 
0

Я уверен, что вы ищете «this». Для этого вам нужен JavaScript.

Есть в основном 3 шага:

  1. Сделать таблицу HTML для отображения содержимого.
  2. Используйте CSS для создания этой таблицы.
  3. Используйте JavaScript для поиска и фильтрации таблицы.

Подробнее см. Ссылку.
https://www.w3schools.com/howto/howto_js_filter_table.asp

Смежные вопросы