Автор Тема: Как сделать выборку из БД при помощи списка(ComboBox) ... ?  (Прочитано 4621 раз)

0 Пользователей и 1 Гость просматривают эту тему.

  • Гость
Как с помощью компонента выбора из списка (ComboBox)
сделать выборку – фильтрацию из БД по определенному полю списка.

Т.е. что в этом коде не так, второй день мучаюсь, если вместо поставить - все работает, но нужна именно выборка из списка :






$db = mysql_connect("localhost", "login", "pass");
mysql_select_db("BD", $db);
if(isset($submit)):
$sql = "select * from katalog where name = \'$name\'";
else:
$sql = "select * from katalog";
endif;
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
$name=$row["name"];
echo "$name
";
}
?>

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля

if(isset($submit)): 
$sql "select * from katalog where name = \\"$name\\""
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн bhor

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 767
  • +0/-0
  • 0
    • Просмотр профиля
Если это у  тебя все находится в одном файле нужно сделать разные названия переменных

<select name="name_submit" size="1">


$sql 
"select * from `katalog` where `name` = \'$name_submit\'";

  • Гость
Все два способа НЕ РАБОТАЮТ!
Вот упрощенный листинг моей  начальной проги.

Дамп:

# phpMyAdmin MySQL-Dump
# version 2.2.2
# http://phpwizard.net/phpMyAdmin/
# http://phpmyadmin.sourceforge.net/ (download page)
#
# Хост: localhost
# Время создания: Май 28 2002 г., 16:37
# Версия сервера: 3.23.33
# Версия PHP: 4.0.6
# БД : `BD`
# --------------------------------------------------------

#
# Структура таблицы `katalog`
#

CREATE TABLE katalog (
  id int(11) NOT NULL auto_increment,
  name text NOT NULL,
  PRIMARY KEY (id)
) TYPE=MyISAM;













$db = mysql_connect("localhost", "login", "pass");
mysql_select_db("wbd", $db);
if(isset($submit)):
$sql = "select * from katalog where name = \\"$name\\"";
else:
$sql = "select * from katalog";
endif;
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
$name=$row["name"];
echo "$name
";
}
?>



Оффлайн bhor

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 767
  • +0/-0
  • 0
    • Просмотр профиля

<html
<
body bgcolor="#FFFFFF"
<
p
<
form action="test.php" method="POST"
<
select name="name_submit" size="1"
<?
php 
$db 
mysql_connect("localhost""login","pass"); 
mysql_select_db("bd"$db); 
$result mysql_query("SELECT DISTINCT `name` FROM `katalog`"); 
while (list(
$name)=mysql_fetch_array($result)) { 
echo 
"<option value=\\"$name\\">$name</option>"

?> 
</select> 


<input type="submit" name="submit" value="Submit!"> 
</form> 
<table border="1" cellpadding="3"> 
<?php 
$db 
mysql_connect("localhost""login""pass"); 
mysql_select_db("bd"$db); 
if(isset(
$submit)):
$sql "select * from `katalog` where `name` = \'$name_submit\'"
else: 
$sql "select * from `katalog`"
endif; 
$result mysql_query($sql); 
while (
$row mysql_fetch_array($result)) { 
$name=$row["name"]; 
echo 
"$name
"


?> 
</table> 
</body> 
</html>

Вот это у меня работает. проверял

  • Гость
Спасибо все работает!

Вот еще вопрос:

Я добавил второе поле выборки и кнопку , но
как сделать фильтрацию фильтром №1 и фильтром №2 при совместной работе.
Сначало  фильтром №1 потом из полученного результата фильтром №2, т.е. отсеивание.

Оффлайн bhor

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 767
  • +0/-0
  • 0
    • Просмотр профиля
Цитировать
Сначало фильтром №1

Это уже у тебя есть.
Цитировать
потом из полученного результата фильтром №2


<select name="name_2" size="1"
<?
if(isset(
$submit)) {
<
form action="test.php?name=<? echo $name_submit; ?>" method="POST"
$sql "select * from `katalog` where `name` = \'$name_submit\'";
$result mysql_query($sql); 
while (list(
$filter)=mysql_fetch_array($result)) { 
echo 
"<option value=\\"$filter\\">$filter</option>"
}
echo 
"<input type="submit" name="submit_2" value="Submit!"></form>";
}
if (isset(
$submit_2)) {
$sql="SELECT * FROM `katalog` WHERE (`name`=\'$name_submit\' AND `name`=\'$name_2\')";
$result mysql_query($sql); 
while (
$row mysql_fetch_array($result)) { 
$name=$row["name"]; 
echo 
"$name
"

}

программу не проверял, но думаю смысл ясен

  • Гость
Пытался я и так, не пойму в чем дело - не выходит.
Может что нибудь посоветуешь ...














$db = mysql_connect("localhost", "login", "pass");
mysql_select_db("BD", $db);
if(isset($submit1)):
$sql = "select * from `katalog` where `name` = \'$name_submit\'";
elseif(isset($submit2)):
$sql = "select * from `katalog` where (`name`=\'$name_submit\' AND `name`=\'$make_submit\')";
else:
$sql = "select * from \'katalog\' where id<\'30\'";
endif;
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {

$id=$row["id"];
$name=$row["name"];
$make=$row["make"];

echo \'\';
echo \'\';
echo   "";
echo   "";
echo  "";
echo  \'
$id_prod $name$make
\';

}
?>





 

Sitemap 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