stalingrad432006, простите, вы комментируете свой код для меня? Я-то понял
Кстати, утром, когда я писал, кода было меньше. Да и сопровождающего текста тоже. Но нед надписи "последний раз редактировалось". У меня провал?))
Цитата:
$myrow = mysql_fetch_array($result);
do
{
echo "Объект №"$myrow['такой-то']."<br/>";
echo $myrow['вот это']."<br/>";
echo $myrow['вот то']."<br/>";
echo $myrow['не это']."<br/>";
echo $myrow['не то']."<br/>";
echo $myrow['и т.д.']."<br/>";
}
while ($myrow = mysql_fetch_array($result));
|
Зачем такая странная конструкция? Можно проще:
Цитата:
while ($myrow = mysql_fetch_array($result))
{
echo "Объект №"$myrow['такой-то']."<br/>";
echo $myrow['вот это']."<br/>";
echo $myrow['вот то']."<br/>";
echo $myrow['не это']."<br/>";
echo $myrow['не то']."<br/>";
echo $myrow['и т.д.']."<br/>";
}
|
И впереди не придётся инициализировать $myrow.
Вместо mysql_fetch_array() я предпочитаю использовать mysql_fetch_assoc(). Всё равно ведь только ассоциативными элементами массива пользуетесь, так зачем и нумерованный и ассоциативный вместе делать?
Цитата:
<div style="text-align:center"/>
<option value="2.2"/>2.2</option>
|
Такие строки некорректны с точки зрения HTML (сначала почему-то тег закрывает сам себя
/>, а потом ещё и другим закрывается. Тот же div не может быть одиночным тегом - иначе зачем он вообще нужен?
Вообще, достаточно написать
<option>2.2</option>, чтобы передавались соответствующие данные. Вот если вам надо показывать одно, а передавать другое, то используем
<option value='2.2'>Мяу-мур</option>.
Далее, повторюсь: в элементах должен быть атрибут name. Т.е. <select
name='var1'>... Если имя не указано, то и данные вы потом в скрипте не обработаете. После отправки формы методом post скрипт может получить значение выбранного элемента в select'e по запросу, например,
echo $_POST['var1']; Т.е. если был выбран элемент 2.2, то echo выведет 2.2.
Ладно, для понимания приведу конкретный пример:
PHP код:

<html><head><title>Заголовок</title></head>
<body>
<?php
if ($_POST['city']) // если передаётся запрос с формы, то входим в этот блок
{
echo "Результаты поиска по городу " . $_POST['city'];
$sql = mysql_query("SELECT * FROM `table_name` WHERE `city`='" . $_POST['city'] . "'"); // Обратите внимание на правильность расстановки кавычек.
// можно использовать и такие запросы ... WHERE `city` LIKE '%" . $_POST['city'] . "%'". Тогда поиск осуществляться поиск не точного совпадения, а строк, содержащих значение.
// Но есть ограничение на минимальную длину строки в запросе LIKE. Какое именно - трудно сказать.
// Я писал поиск по прайсу, так там при запросе длиной 4 символа и меньше находилась всякая фигня.
//Даже на слово из трёх букв свой товар находился :) Хотя ничего такого в прайсе не было.
while ($result = mysql_fetch_assoc($sql))
{
echo "Улица " . $result['street'] . ", дом " . $result['home'] . "<br />"; // предполагается, что таблица имеет структуру [ id | city | street | home | и т.д. ]
}
}
// а после вывода результатов показываем форму. Если не было запроса с формы, значит просто форма будет.
?>
<form action="" method="post">
<select name="city">
<option checked="checked">Челябинск</option>
<option>Москва</option>
<option>Самара</option>
<option value="Бобруйск">Замухрыжинск</option>
</select>
<br />
<input type="submit" value="Отправить" />
</form>
</body>
</html>
Теперь комментарии по html:
- В форме стоит
action="" - отправка запроса на самого себя.
- <select
name="city"> будет сохранять значение в переменную
city ($_POST['city').
- По умолчанию в списке выбран Челябинск.
- Если в тэге <option> не указано значение
value="nya", значит передаётся содержимое тэга. Т.е. для Челябинска, Москвы и Самары будет передаваться "Челябинск", "Москва" и "Самара" соответственно. При выборе "Замухрыжинск"а скрипт получит значение переменной $_POST['city'] == "Бобруйск" (указано значение value).