176

Re: Выпадающий список

павелsimon сказал:

А каклькулятор это в тот же столбик где выводится остаток например остаток вывелся 2 а в этомже столбике есть две кнопки - 2 +,  нажимаем на + к 2 прибавляется 1 становится 3 значит она уже множится на цену а в столбике всего выводится результат

Это вы уже сами будете делать.

177

Re: Выпадающий список

Доброй ночи. Подскажите как правильно написать запрос.  Я делаю запрос к базе и передаю один из параметров

echo ' зима <input type="radio" name="sezon" value="зимние" />';
echo ' лето <input type="radio" name="sezon" value="летние"  checked/>';
echo ' <input type="submit" value="Подобрать" />';

   
сам запрос

$result = mysql_query ("SELECT * 
FROM proba
WHERE modif= '" . addslashes($_POST['mod']) . "' and sezon = '" . addslashes($_POST['sezon']) . "'  ",$db);

если ставлю радио батон,(зимние) то выдаст все зимние, если летние то летние, а как прописать кнопку все чтоб выдало результат по всем сезонам?

178

Re: Выпадающий список

Добавьте радио-кнопку:

echo ' все <input type="radio" name="sezon" value="all" />';

В скрипте добавьте условие и меняйте в зависимости от него запрос.

if ($_POST['sezon'] == 'all') {
  $sql = 'SELECT * FROM `proba` WHERE `modif` = "' . addslashes($_POST['mod'])  . '"';
} else {
  $sql = "SELECT * 
  FROM proba
  WHERE modif= '" . addslashes($_POST['mod']) . "' and sezon = '" . addslashes($_POST['sezon']) . "'";
}
$result = mysql_query($sql);

179

Re: Выпадающий список

Спасибо помогло.  Я раньше ставил только саму радиокнопку, не подумал что условие нужно тоже писать.

180

Re: Выпадающий список

Подскажите как читается эта строка, тоесть за что она отвечает в коде

if (!empty($_POST['nazv_auto']) && !empty($_POST['nazv_model']) && !empty($_POST['nazv_year']));

  Когда ее убрать из кода то списки на странице висят сразуже а не появляются по очереди по мере выбора из них.


код со строкой

$year = "-<select id='id_year' name='nazv_year' size='1'  onchange=\"this.form.submit();\">;
                <option value='vse'>Год</option>";
                $query = mysql_query("SELECT * FROM year
WHERE id_model='" . addslashes($_POST['nazv_model']) . "'    ORDER BY id_year");
                $result = mysql_fetch_array($query);
                 do
                {
                    $year .= "<option value='".$result['id_year']."'";
                    if (!empty($_POST['nazv_year']) && $_POST['nazv_year'] == $result['id_year']) {
                        $year .= ' selected="selected"';
                    }
                    $year .= ">".$result['nazv_year']."</option>";
                }
                while($result = mysql_fetch_array($query));
$year .= "</select>";
echo $year.""."";
if (!empty($_POST['nazv_auto']) && !empty($_POST['nazv_model']) && !empty($_POST['nazv_year'])); {
}
$modifikation = "-<select id='id_mod' name='mod' size='1' >;
                <option value='vse'>Модификация</option>";
                $query = mysql_query("SELECT * FROM modif
WHERE id_year='" . addslashes($_POST['nazv_year']) . "' ORDER BY id_mod");
                $result = mysql_fetch_array($query);
                do
                {
                    $modifikation .= "<option value='".$result['id_mod']."'";
                    if (!empty($_POST['id_mod']) && $_POST['id_mod'] == $result['id_mod']) {
                        $modifikation .= ' selected="selected"';
                    }
                    $modifikation .= ">".$result['mod']."</option>";
                }
                while($result = mysql_fetch_array($query));
$modifikation .= "</select>";
echo $modifikation."<br>"."<br>";

код без нее

$year = "-<select id='id_year' name='nazv_year' size='1'  onchange=\"this.form.submit();\">;
                <option value='vse'>Год</option>";
                $query = mysql_query("SELECT * FROM year
WHERE id_model='" . addslashes($_POST['nazv_model']) . "'    ORDER BY id_year");
                $result = mysql_fetch_array($query);
                 do
                {
                    $year .= "<option value='".$result['id_year']."'";
                    if (!empty($_POST['nazv_year']) && $_POST['nazv_year'] == $result['id_year']) {
                        $year .= ' selected="selected"';
                    }
                    $year .= ">".$result['nazv_year']."</option>";
                }
                while($result = mysql_fetch_array($query));
$year .= "</select>";
echo $year.""."";
 {
}
$modifikation = "-<select id='id_mod' name='mod' size='1' >;
                <option value='vse'>Модификация</option>";
                $query = mysql_query("SELECT * FROM modif
WHERE id_year='" . addslashes($_POST['nazv_year']) . "' ORDER BY id_mod");
                $result = mysql_fetch_array($query);
                do
                {
                    $modifikation .= "<option value='".$result['id_mod']."'";
                    if (!empty($_POST['id_mod']) && $_POST['id_mod'] == $result['id_mod']) {
                        $modifikation .= ' selected="selected"';
                    }
                    $modifikation .= ">".$result['mod']."</option>";
                }
                while($result = mysql_fetch_array($query));
$modifikation .= "</select>";
echo $modifikation."<br>"."<br>";

работает так же но окна висят сразуже что и требовалось, я вот только думаю не повредит ли отсутствие этой строки?

181

Re: Выпадающий список

Эта строка должна вызывать ошибку, в ней неверный синтаксис, лишняя точка с запятой.

if (!empty($_POST['nazv_auto']) && !empty($_POST['nazv_model']) && !empty($_POST['nazv_year'])); {
}

В таком виде строка означает, что код внутри нее будет выполнен только если пришли данные из перечисленных переменных формы.

if (!empty($_POST['nazv_auto']) && !empty($_POST['nazv_model']) && !empty($_POST['nazv_year'])) {
// Перечисленные поля не пусты, значит заполнены.
}

182 (изменено: павелsimon, 2012-04-08 01:10:16)

Re: Выпадающий список

Подскажите пожалуйста как реализуэтся запрос из одной базы но с разных таблиц, есть две таблицы, (мерседес и опель)
в запросе мне нужно вытащить все поля из двух таблиц где параметр (мод) равен 1 параметр мод есть в обеих таблицах
как мне их в запросе обединить?   

$result3 = mysql_query("select * from mercedes and opel where id='$mod'  ",$db);
    $row3 = mysql_fetch_array($result3);

   а также напишите если можно вариант обединения 3 и больше таблиц

183

Re: Выпадающий список

павелsimon сказал:

как мне их в запросе обединить?

Если обе таблицы имеют одинаковую структуру и типы полей, то объединить их можно с помощью UNION SELECT. Объединить таким образом можно данные из любого количества идентичных по структуре таблиц.

Пример из документации:

(SELECT a FROM t1 WHERE a=10 AND B=1)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;

184 (изменено: павелsimon, 2012-04-08 15:44:13)

Re: Выпадающий список

Здравствуйте - Спасибо то что надо, подскажите еще такая задача возникла, вот есть зависимые списки эта часть кода

$modifikation = "-<select id='id_mod' name='mod' size='1' >;
                <option value='vse'>Модификация</option>";
                $query = mysql_query("SELECT * FROM modif
WHERE id_year='" . addslashes($_POST['nazv_year']) . "' ORDER BY id_mod");
                $result = mysql_fetch_array($query);
                do
                {
                    $modifikation .= "<option value='".$result['id_mod']."'";
                    if (!empty($_POST['id_mod']) && $_POST['id_mod'] == $result['id_mod']) {
                        $modifikation .= ' selected="selected"';
                    }
                    $modifikation .= ">".$result['mod']."</option>";
                }
                while($result = mysql_fetch_array($query));
$modifikation .= "</select>";
echo $modifikation."<br>"."<br>";
}
/*if (!empty($_POST['nazv_auto']) && !empty($_POST['nazv_model'])  && !empty($_POST['nazv_year'])
&& !empty($_POST['mod']) && !empty($_POST['sezon'])); */{
}
echo '<p> все<input type="radio" name="sezon" value="all" checked >';
echo '<p> зима <input type="radio" name="sezon1" value="зимние" >';
echo '<p> лето <input type="radio" name="sezon" value="летние"  >';
echo '<p> всесезонные <input type="radio" name="sezon" value="всесезонные" >';

        echo ' <input type="submit" value="Подобрать" >';                  
echo '<p><table border = "1">
          <tr>
          <th>модель</th>
          <th>диаметр</th>
          <th>ширина</th>
          <th>профиль</th>
          </tr>';
          $result = mysql_query ("SELECT * 
FROM proba
WHERE modif= '" . addslashes($_POST['mod']) . "' and sezon = '" . addslashes($_POST['sezon']) . "'   ",$db);
if ($_POST['sezon'] == 'all') {
  $sql = 'SELECT * FROM `proba` WHERE `modif` = "' . addslashes($_POST['mod'])  . '"';
} else {
  $sql = "SELECT * 
  FROM proba
  WHERE modif= '" . addslashes($_POST['mod']) . "' and sezon = '" . addslashes($_POST['sezon']) . "'";
}
$result = mysql_query($sql);




while ($myrow = mysql_fetch_array ($result)){
   
    $model = $myrow["model"];
    $sezon = $myrow["sezon"];
    $shirina = $myrow["shirina"];
    $profil = $myrow["profil"];
    $indnag = $myrow["indnag"];
    $indskor = $myrow["indskor"];
    $ostatok = $myrow["ostatok"];
    $cena = $myrow["cena"];
    
    echo "<tr>";
    echo "<td>$model</td>";
    echo "<td>$sezon</td>";
    echo "<td>$shirina</td>";
    echo "<td>$profil</td>";
    echo "<td>$indnag</td>";
    echo "<td>$indskor</td>";
    echo "<td>$ostatok</td>";
    echo "<td>$cena</td>";
    echo "</tr>";
    echo "<a href='view_form.php?id=%s'>заказать</a>";
    

    }




echo '</table>';

echo "</form>";

 ?>

сдесь последний список по которому происходит выбор а также радиокнопки.  В таком виде при первой загрузке страницы в таблицы ничего не выводится, а надо чтоб в них вывелось все, а потом результат менялся уже по выбору из списков.  Тоесть я так думаю это как стем параметром (all) что вы ранее мне подсказали тоесть в последнем списке нужно чтоб этот параметр наверное присутствовал и уже если он присутствует то по нему в таблицу выведутся все строки при первой загрузке страницы

185

Re: Выпадающий список

Создайте условие внутри которого формируйте таблицу с полными данными.

if (условие) { // Условие - это какая-то проверка на переменную, например: empty($_POST['nazv_auto']).
// Здесь полные данные
} else {
// Здесь фильтр
}

186

Re: Выпадающий список

если я уберу все условия

 $result = mysql_query ("SELECT * 
FROM proba
",$db);

то при перовой загрузке страницы вывидется вся информация из базы что и нужно. Но тогда я не смогу формировать таблицы по средством списков по этим условиям

 $result = mysql_query ("SELECT * 
FROM proba
",$db);
if ($_POST['sezon'] == 'all') {
  $sql = 'SELECT * FROM `proba` WHERE `modif` = "' . addslashes($_POST['mod'])  . '"';
} else {
  $sql = "SELECT * 
  FROM proba
  WHERE modif= '" . addslashes($_POST['mod']) . "' and sezon = '" . addslashes($_POST['sezon']) . "'";
}
$result = mysql_query($sql);

так как же мне правильно условие сформировать при первой загрузке страницы вывести всю информацию но оставить работоспособными вышеприведенные условия?

187

Re: Выпадающий список

Мне просто нужно написать условие если в списках ничего не выбрано то вывести все результаты из таблицы, но при этом также нужно чтоб было условие для списков если в них чтото выбираеш то меняется выведеная информация. Но я незнаю как написать структуру условия писать два раза if, else? так не правильно

188

Re: Выпадающий список

Весь ваш код засуньте в else, а в if пишите новый код, который выберет все данные из БД.

189

Re: Выпадающий список

при таком условии

if (!$_POST['mod']) {
  $sql = 'SELECT * FROM `proba` ';
  }

  значит что если ничего не выбрано в списке то вывести, все но я просто незнаю как правильно написать еще и ети условия

if ($_POST['sezon'] == 'all') {
  $sql = 'SELECT * FROM `proba` ';
} else {
  $sql = "SELECT * 
  FROM proba
  WHERE modif= '" . addslashes($_POST['mod']) . "' and sezon = '" . addslashes($_POST['sezon']) . "'";
}
$result = mysql_query($sql);

что если всетаки в списке чтото выбрано то вывести то что выбрано

190

Re: Выпадающий список

if (!$_POST['mod']) { // Это не правильно.

Если страница загружается обычным образом, без нажатия на кнопку формы, то массив $_POST будет пустым, значит переменной отвечающей за передачу списка, например $_POST['nazv_auto'], не будет. Поэтому условие вернет истину и будет выполнено, иначе произойдет выполнение кода внутри else:

if (empty($_POST['nazv_auto'])) {
// Здесь полные данные
} else {
// Здесь фильтр
}

Код вы будете писать сами. Я только объясняю логику работы операторов.

191

Re: Выпадающий список

написал вот так

if (!$_POST['mod']) {
  $sql = 'SELECT * FROM `proba` ';
  }
  else {
  $sql = "SELECT * 
  FROM proba
  WHERE modif= '" . addslashes($_POST['mod']) . "' and sezon = '" . addslashes($_POST['sezon']) . "' ";
}
if ($_POST['sezon'] == 'all') {
  $sql = 'SELECT * FROM `proba` WHERE `modif` = "' . addslashes($_POST['mod'])  . '"';
}
$result = mysql_query($sql);

работает так как надо, этот код возможно написать както оптимальнее?

192 (изменено: павелsimon, 2012-04-08 19:34:15)

Re: Выпадающий список

Подскажите пожалуйста как отсортировать дубликаты в запросе я пробую вот так ничего не выходит

SELECT  DISTINCT * FROM  proba  order by shirina

  тоесть мне нужно чтоб дубликаты выводились лиш один раз

193

Re: Выпадающий список

Не могу сформировать запрос дело в том что из таблицы нужно вытащить 2 параметра id,  shirina, параметр shirina, повторяется тоесть у него может быть 3 одинаковых значения например 195, в запросе нужно вытащить эти параметры но без дубликатов

 SELECT  distinct   shirina  FROM  proba  order by shirina

вот в этот запрос я немогу вставить еще параметр id чтоб не выводились дубликаты лишь по параметру shirina

194

Re: Выпадающий список

нашел проблему оказалось нужно чтоб повторялись два параметра и тогда оператор distinct будет действовать

195

Re: Выпадающий список

павелsimon сказал:

работает так как надо, этот код возможно написать както оптимальнее?

if (!$_POST['mod']) { // Я писал, что это ошибка.
// Если надо проверить существует ли переменная и есть ли в ней значение, то надо писать так:
if (!empty($_POST['mod'])) {

196

Re: Выпадающий список

на щет выбора из базы без дубликатов, нужно выбрать два параметра id shirina, только id само собой не повторяется а вот shirina  дублируется в запросе

SELECT  DISTINCT   id, shirina  FROM  proba  order by shirina

не получится так отсортировать можно его както по другому записать?

197

Re: Выпадающий список

Смотрите документацию: GROUP BY

SELECT  `id`, `shirina` FROM `proba`
GROUP BY `shirina`
ORDER BY `shirina`

198

Re: Выпадающий список

Здравствуйте с кодом калькулятора, чтото у меня не так выходит по нажатию на кнопку ничего не происходит

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head>
<script>
function price(plus) {
  if (plus) {
    ducument.getElementById("price").value += 250;
  } else {
    ducument.getElementById("price").value -= 250;
  }
}
</script>
<body>

<input type="button" value="-" onclick="javascript:price(0);" />
<input type="text" id="price" value="1000" />
<input type="button" value="+" onclick="javascript:price(1);" />

</body>
</html>

199

Re: Выпадающий список

Тег <script> вложите внутрь тега <head>.

<script>
function price(plus) {
  var price = ducument.getElementById("price");
  if (plus) {
    price.value = parseInt(price.value) + 250;
  } else {
    price.value = parseInt(price.value) - 250;
  }
}
</script>

200

Re: Выпадающий список

Вроде прописал но не реагируют кнопки никак

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script>
function price(plus) {
  var price = ducument.getElementById("price");
  if (plus) {
    price.value = parseInt(price.value) + 250;
  } else {
    price.value = parseInt(price.value) - 250;
  }
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>

</head>

<body>

<input type="button" value="-" onclick="javascript:price(0);" />
<input type="text" id="price" value="1000" />
<input type="button" value="+" onclick="javascript:price(1);" />

</body>
</html>