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

  • Автор темы Автор темы fly
  • Дата начала Дата начала

fly

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

Версия php4

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



<?
$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>";
}
?>
 
Автор оригинала: die_hard
Написали метод ПОСТ значит надо брать значение из ПОСТ-а

$age=intval($_POST['age']);//или $HTTP_POST_VARS["age"]
Скажите, именно этот 'age' - обязательно должен совпадать с
<select name='age'>
<option>Двадцать два</option>
<option>Двадцать три</option>
</select>???
У меня почему-то все записи вываливаются! А мне нужны с одним значением!
 
1 - почитай про работу с формами.
2 - почитайте про sql.
3 - "У меня почему-то все записи вываливаются! А мне нужны с одним значением! " вот это вообще непонятно че хотите то?
3
 
<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>";
}
У меня выводятся все записи! Что здесь не правильно?
 
Скажите честно, вы не знаете? Я жду уже несколько часов конкретного ответа. Так хотелось, чтобы вы мне помогли! Если есть ошибки, может укажете?
 
Автор оригинала: fly
<form action="look.php" method=\"POST\">
<select name="select">
<option>Двадцать один</option>
<option>Двадцать два</option>
<option>Двадцать три</option>
</select>
<button type="submit">Выбрать</button>
</form>
Ну, для начала в теге <option> нет value.

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

Пойми, нужно когда-то начинать отлаживать самому. Лучше начать с простого, чем потом всю жизнь страдать.
 
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'];
Иначе сколько введут столько лет придётся сидеть базу чинить
 
Ну, для начала в теге <option> нет value.
I feel sick

-~{}~ 05.02.06 02:22:

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

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

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

Denix
эту ссылку здесь дают не тогда, когда человек вообще ничего не понимает, а когда у него ЧТО-ТО не работает. а у него работает. просто не так как он хочет.
Сори, надо было дать ссылку точнее.
http://phpfaq.ru/debug#debug
 
Теперь вроде должно быть правильно, но... Что-то да и не получается... По-моему у меня проблемы с кодировкой... Что делать?
<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?
Я никак не могу найти свою ошибку...
 
ты видишь, что ты за запрос ты отправляешь в базу данных?
вот ты передал данные в скрипт.
составил из них запрос.

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

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

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

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

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