Вывод из БД записей одного значения выбором из списка

fly

Новичок
Вывод из БД записей одного значения выбором из списка

Версия php4

При выборе из списка, хотелось бы открыть записи всех людей в возрасте 22-х лет.
<select name="age">
<option value="1">20
<option value="2">21
<option value="3">22
</select>
В БД "1" есть таблица "people", в которой есть поле "age" и из нескольких записей мне нужно вытащить всех 22-летних. Как написать код на php?
 

die_hard

Новичок
Написали метод ПОСТ значит надо брать значение из ПОСТ-а



<?
$age=intval($_POST['age']);//или $HTTP_POST_VARS["age"]
$sql=mysql_query("SELECT name FROM people WHERE age=$age");
echo "Список имен людей с возрастом $age:<br>";
$i=1;
while($row=mysql_fetch_assoc($sql))
{
echo ($i++).") ".$row['name']."<br>";
}
?>
 

fly

Новичок
Автор оригинала: die_hard
Написали метод ПОСТ значит надо брать значение из ПОСТ-а

$age=intval($_POST['age']);//или $HTTP_POST_VARS["age"]
Скажите, именно этот 'age' - обязательно должен совпадать с
<select name='age'>
<option>Двадцать два</option>
<option>Двадцать три</option>
</select>???
У меня почему-то все записи вываливаются! А мне нужны с одним значением!
 

die_hard

Новичок
1 - почитай про работу с формами.
2 - почитайте про sql.
3 - "У меня почему-то все записи вываливаются! А мне нужны с одним значением! " вот это вообще непонятно че хотите то?
3
 

fly

Новичок
<form action="look.php" method=\"POST\">
<select name="select">
<option>Двадцать один</option>
<option>Двадцать два</option>
<option>Двадцать три</option>
</select>
<button type="submit">Выбрать</button>
</form>

где "look.php":

mysql_connect("$host","$user","$password");

mysql_select_db("$db");

$vozrast=intval($HTTP_POST_VARS["select"]);
$sql=mysql_query("SELECT * FROM $tb WHERE age=".$vozrast."");

echo "Список людей в возрасте ".$age.":<br>";
$i=1;
while($row=mysql_fetch_assoc($sql))
{
echo ($i++).") ".$row['name'].",".$row['age']."<br>";
}
У меня выводятся все записи! Что здесь не правильно?
 

Denix

Новичок
В манах не пробовали поискать про тег <option>, <select> ?
 

fly

Новичок
Скажите честно, вы не знаете? Я жду уже несколько часов конкретного ответа. Так хотелось, чтобы вы мне помогли! Если есть ошибки, может укажете?
 

Denix

Новичок
Автор оригинала: fly
<form action="look.php" method=\"POST\">
<select name="select">
<option>Двадцать один</option>
<option>Двадцать два</option>
<option>Двадцать три</option>
</select>
<button type="submit">Выбрать</button>
</form>
Ну, для начала в теге <option> нет value.

А вообще прочитай
Ничего не работает! что делать?

Пойми, нужно когда-то начинать отлаживать самому. Лучше начать с простого, чем потом всю жизнь страдать.
 

Valenok

Новичок
PHP:
mysql_connect("$host","$user","$password");

mysql_select_db("$db");

$res=mysql_query("SELECT * FROM people WHERE age=".$_POST['age']." ' ");

echo "Список людей в возрасте ".$_POST['age'].":".mysql_num_rows($res)."<br>";

while($row=mysql_fetch_array($res))
{
echo $row['name']." любит яблоки"
}
Советую хорошенько обработать $_post['age'];
Иначе сколько введут столько лет придётся сидеть базу чинить
 

spiner

Новичок
Ну, для начала в теге <option> нет value.
I feel sick

-~{}~ 05.02.06 02:22:

Denix
эту ссылку здесь дают не тогда, когда человек вообще ничего не понимает, а когда у него ЧТО-ТО не работает. а у него работает. просто не так как он хочет.
 

Фанат

oncle terrible
Команда форума
fly
Так хотелось, чтобы вы мне помогли!
для начала помоги себе сам.
для этого ты должен чётко представлять себе, что делаешь, и разбить задачу на части.

1 задача: передать нужное значение из формы вскрипт.
2 задача: научиться выполнять запрос и выводить данные.
3 задача: понять, какой запрос оставлять.

вот и решай их по очереди
а пока ты пытаешься решить всё скопом, причём ошибки в каждом пункте, ты никогда не решишь.
и в ответах тебе все будут всё время друг другу мешать, поскольку задачи-то РАЗНЫЕ!
 

Denix

Новичок
Автор оригинала: spiner

Denix
эту ссылку здесь дают не тогда, когда человек вообще ничего не понимает, а когда у него ЧТО-ТО не работает. а у него работает. просто не так как он хочет.
Сори, надо было дать ссылку точнее.
http://phpfaq.ru/debug#debug
 

fly

Новичок
Теперь вроде должно быть правильно, но... Что-то да и не получается... По-моему у меня проблемы с кодировкой... Что делать?
<SELECT name="var">
<option>&#209;&#229;&#236;&#232;&#239;&#224;&#235;&#224;&#242;&#232;&#237;&#241;&#234;
<option>&#192;&#241;&#242;&#224;&#237;&#224;
<option>&#192;&#235;&#236;&#224;&#242;&#251;
<option>&#202;&#224;&#240;&#224;&#227;&#224;&#237;&#228;&#224;
<option>&#211;&#241;&#242;&#252;-&#202;&#224;&#236;&#229;&#237;&#238;&#227;&#238;&#240;&#241;&#234;
<option>&#202;&#238;&#241;&#242;&#224;&#237;&#224;&#233;
</SELECT>
В адресной строке у меня такая запись:

http://mydomain/myfile.php?var=%D1%E5%EC%E8%EF%E0%EB%E0%F2%E8%ED%F1%EA - что последнее означает выбор из списка...
Мой запрос:
$result=mysql_query("SELECT * FROM ".$tb." where city='".$_POST['var']."'");
Вывод данных:
mysql_connect("$host","$user","$password");

mysql_select_db("$db");

$sql=mysql_query("SELECT * FROM ".$tb." where city='".$_POST['var']."'");

$result=mysql_query($sql);

echo '<table width="750" border="0" cellspacing="0"
cellpadding="2" align=left>
<caption align="top"><h3><b>'.$link.'</b></h3></caption>
<tr>
<td align=center width="30" bgcolor="#0071E1"><font size=+1 color=#FFFFFF><b>&#185;</b></font></td>
<td align=center width="370" bgcolor="#0071E1"><font size=+1 color=#FFFFFF><b>'.$link.'</b></font></td>
</tr>';

while($row=mysql_fetch_assoc($sql))
{

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


echo "<tr>
<td align=center bgcolor='#FFFFD2' width=\"30\"><b>$id</b></td>
<td align=left bgcolor='#FFFFD2' width=\"370\"><a href=$www target=blank><b>$name</b></a></td>

</tr>" ;

}
Выводится только шапочка таблицы № и Название, а данные из базы не выводятся. Может быть кодировка в базе не совпадает с опциями SELECT?
Я никак не могу найти свою ошибку...
 

Фанат

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

ЗАЧЕМ ЕГО СРАЗУ В БАЗУ ПИХАТЬ???

почему не посмотреть сначала - а всё в нём правильно?

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

почему бы просто глазами не посмотреть?
почему не делать ПО-СТЕ-ПЕН-НО?

почему не делать так, как я тебе написал - сначала научиться передавать данные в скрипт?
 
Сверху