Активный выпадающий список из mysql для фильтра таблицы

АстраМаксим

Новичок
Добрый день. Не кидайте камни в меня но возможно вопрос простой но не как не могу понять как реализовать.
У меня есть таблица со значениями 1 строка id потом 8(a1-a8) текстовых строк там цифры и инвентарники и последние поле ДАТА(a9)(Дата записи в базу данных)
Вопрос как реализовать активный список чтобы выбирая дату из списка мне отображался таблица только тот день что выбран в списке!!!
Понимаю что надо сделать как бы через GET но как реализовать это в коде со списком не могу понять.
1395

index.php

PHP:
<? echo ("
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">

<head>

    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />

    <title>ОЦО1</title>

<style type=\"text/css\">

<!--
body { font: 12px Georgia; color: #666666; }
h3 { font-size: 16px; text-align: center; }
table { width: 95%; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; }
td { padding: 3px; text-align: center; vertical-align: middle; }
.buttons { width: auto; border: double 1px #666666; background: #D6D6D6; }
-->
</style>

</head>

");

/* 0202 */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "[xxx]"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = "xxx"; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "xxx"; // название базы данных

/* Таблица MySQL, в которой хранятся данные */
$table = "a";

/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());

//if isset($_GET['Z']);

/* Составляем запрос для извлечения данных из полей  */

$query =

"SELECT id,a1,a2,a3,a4,a5,a6,a7,a8, cast(t.a9 as DATE) as a9  FROM `a` t

where cast(t.a9 as DATE)='2019-07-17'    <<<<<<<<<-----------!!!!!!!!!!!!!!!! Я понимаю что сюда надо поставить переменную и как-то сделать ее ссылкой эту переменную но в душе не понимаю как(((( ПОМОГИТЕ

order by 1 desc ";


/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());


//require 'db_connect.php';  // подключение блока где реализуется подключение к БД
$on_link=mysql_connect("xxx", "xxx", "xxx");
mysql_select_db("xxx");
//SELECT date_format(mydatefield,'%m/%d/%Y') as mydatefield FROM mytable
$strSQL = "SELECT distinct(cast(t.a9 as DATE)) as a9 FROM `a` t order by 1 desc";     // запрос
$rs = mysql_query($strSQL); 
?>
<form method='POST' action='1'>
    <p>
    <select size="1">
        <option disabled>Выбор</option>
        <? while($var = mysql_fetch_array($rs)){
  
        ?>
        <option value ="<?=$var['a9']?>"><?=$var['a9']?></option>
        <?}?>
    </select>
    </p>
</form>
<?
/* Выводим данные из таблицы */
echo ("
<body>

</form>
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">
<tr style=\"border: solid 1px #000\">
  <td><b>#</b></td>
  <td align=\"center\"><b>Инвентарный</b></td>
  <td align=\"center\"><b>Номенклатурный</b></td>
  <td align=\"center\"><b>Место</b></td>
  <td align=\"center\"><b>Место2</b></td>
  <td align=\"center\"><b>Табельный</b></td>
  <td align=\"center\"><b>Фамилия</b></td>
  <td align=\"center\"><b>Имя и Отчество</b></td>
  <td align=\"center\"><b>Наименование</b></td>
  <td align=\"center\"><b>Дата</b></td>
</tr>

");

/* Цикл вывода данных из базы конкретных полей */

while ($row = mysql_fetch_array($res)) {
    echo "<tr>\n";
    echo "<td>".$row['id']."</td>\n";
    echo "<td>".$row['a1']."</td>\n";
    echo "<td>".$row['a2']."</td>\n";
    echo "<td>".$row['a3']."</td>\n";
    echo "<td>".$row['a4']."</td>\n";
    echo "<td>".$row['a5']."</td>\n";
    echo "<td>".$row['a6']."</td>\n";
    echo "<td>".$row['a7']."</td>\n";
    echo "<td>".$row['a8']."</td>\n";
    echo "<td>".$row['a9']."</td>\n</tr>\n";
}

echo ("</table>\n

");

/* Закрываем соединение */
mysql_close();
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Каша конечно знатная, ты зачем пишешь echo (" и тут html") когда можно код разрывать тэгами <?php и ?> ???

Ну и свой поиск сделай без формы. Открывай сайт с данными типа http://domain.ru/index.php?filter_date=2019-07-29 и дальше просто бери данные из $_GET, а дальше делай форму.
 

АстраМаксим

Новичок
Каша конечно знатная, ты зачем пишешь echo (" и тут html") когда можно код разрывать тэгами <?php и ?> ???

Ну и свой поиск сделай без формы. Открывай сайт с данными типа http://domain.ru/index.php?filter_date=2019-07-29 и дальше просто бери данные из $_GET, а дальше делай форму.
where cast(t.a9 as DATE)='2019-07-17' надо where cast(t.a9 as DATE)='$filter_date' А в адресной строке http://domain.ru/index.php?filter_date=2019-07-29
Я понимаю но если я так делаю то при выборе в списке он не активный и только руками писать в адресную строку а хотелось бы чтобы при выборе в списке в адресную строку добавлялась $filter_date а даты бывают разные !!

<?php и ?> Когда я закрываю я по чему-то теряю связь с mysql
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Книжки читать надо, сначало по синтаксису и прочему, а потом уже по работе с базой. Ты перескакиваешь одни части и пытаешься писать дальше.

В чем сложность сделать форму которая передает параметр GET? Пусть не через онклин или onchange, а с кнопкой? Выбрал пункт, нажал "показать", форма отправила тебе запрос на сервер, ты его обработал и показал.

В каком месте сложность?
 

WMix

герр M:)ller
Партнер клуба
Замени метод post на get в форме, и у select добавь аттрибут onchange=“this.form.submit()”
 
Сверху