Возник вопрос как есть 4 селекта как. Если какой то из них не выбран то есть по умолчанию стоит первый не учитывать его и выводить данные из бд на основе других выбранных. То есть не учитывать не выбранные при выводе данных из бд подскажите кто знает
<html>
<head>
</head>
<body>
<form action="" method="POST">
<input type="submit" name="smb" value="Применить">
<select name="numbers">
<option>Выберите номер</option>
<option value="№1">№1</option>
<option value="№2">№2</option>
<option value="№3">№3</option>
<option value="№4">№4</option>
<option value="№5">№5</option>
<option value="№6">№6</option>
<option value="№7">№7</option>
<option value="№8">№8</option>
<option value="№9">№9</option>
<option value="№10">№10</option>
<option value="№11">№11</option>
<option value="№12">№12</option>
</select>
<?php
// устанавливаем первый и последний год диапазона
$yearArray = range(2000, 2030);
?>
<!-- выводим выпадающий список -->
<select name="yearrs">
<option>Выберите год</option>
<?php
foreach ($yearArray as $year) {
// если вы хотите выбрать конкретный год
$selected = ($year == 1999) ? 'selected' : '';
echo '<option '.$selected.' value="'.$year.'">'.$year.'</option>';
}
?>
</select>
<select name="langgs">
<option>Выберите язык</option>
<?php
$db = mysql_connect ("localhost", "root", "dtctyybqltym")|| die (mysql_error());
mysql_select_db("scat")|| die (mysql_error());
mysql_query("SET NAMES 'utf8'");
$query = 'SELECT * FROM lang';
$result = mysql_query ( $query ) or die ( 'Query failed: ' . mysql_error ( ) );
while ( $line = mysql_fetch_array ( $result, MYSQL_ASSOC ) ) {
echo '<option value="' . $line [ 'lang' ] . '">' . $line [ 'lang' ] . "</option>";
}
?>
</select>
<select name="siglaas">
<option>Выберите местонахождение</option>
<?php
$query = 'SELECT * FROM sigla';
$result = mysql_query ( $query ) or die ( 'Query failed: ' . mysql_error ( ) );
while ( $line = mysql_fetch_array ( $result, MYSQL_ASSOC ) ) {
echo '<option value="' . $line [ 'name' ] . '">' . $line [ 'name' ] . "</option>";
}
?>
</select>
<?php
if(isset($_POST['smb']))
{
$number = $_POST['numbers'];
$yearr = $_POST['yearrs'];
$langg = trim($_POST['langgs']);
$siglaa = trim($_POST['siglaas']);
$result = mysql_query("SELECT `name`, `year`, `namev`, `lang`, `vid`, `period`, `sigla` FROM `osnov` WHERE `name` LIKE '1%' AND `namev`='$number' AND `year`='$yearr' AND `lang`='$langg' AND `sigla`='$siglaa'");
} else
$result = mysql_query("SELECT `name`, `year`, `namev`, `lang`, `vid`, `period`, `sigla` FROM `osnov` WHERE `name` LIKE '1%'");
echo "<table width='100%'>";
echo "<tr><th>Наименование</th><th>Год выпуска</th><th>Номер выпуска</th><th>Язык</th><th>Вид</th><th>Периодичность</th><th>Местонахождение</th></tr>";
while ($row=mysql_fetch_assoc($result)){
extract($row);
echo "<tr><td>$name</td><td>$year</td><td>$namev</td><td>$lang</td><td>$vid</td><td>$period</td><td>$sigla</td></tr>";
}
echo "</table>";
?>
</form>
</body>
</html>
Вообще бы вынести работу с базой(модель) отдельно, и работать с моделью через нэймспэйсы или инклюды.
Как вариант предварительно создать массив
$data = array(
'numbers' => '',
'yearrs' => '',
'langgs' => '',
'siglaa' => ''
);
Селектам задать name в формате data[name]
<select name="data[numbers]"></select>
После получить данные через $request = $_POST['data']
и пробежаться через foreach
собирая строку фильтра
foreach($request as $key => $value)
{
if( array_key_exists($key,$data) )
{
$data[$key] = $value;
}
}
$filter = '';
foreach($data as $key => $value)
{
if( $value != '' )
{
$filter .= " AND `".$key."`='".$value."'";
}
}
В результате получим такой запрос:
$result = mysql_query("SELECT `name`, `year`, `namev`, `lang`, `vid`, `period`, `sigla` FROM `osnov` WHERE `name` LIKE '1%'".$filter);
Установите пустые <option value="none" selected> </option>
в селектах, сделайте их дефолтными.
Далее ловите в PHP что-то по типу:
if($_POST['numbers'] == 'none'){
$number = '';
} else {
$number = $_POST['numbers'];
}
Хотя какой-то индийский кодинг для большого кол-ва полей получается.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Для дальнейшей работы скрипта, необходимо получить из url адреса, имя последнего каталогаПример, нахожусь на странице сайт
ЗдравствуйтеУ меня имеется таблица с товаром в базе в ней строчки id, waybill_id, name, date (идентификатор, номер продажи, товар, дата)