[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как вывести текущий option из selecta?
Lightt
Помогите пожалуйста...

Есть запрос -
//----------------------------------------------------------
include_once "mysql.php";
//----------------------------------------------------------
$link = mysql_connect ( "localhost" , "root" , "" ) ;
mysql_select_db('mistery');

//получаем всех пользователей
$result = mysql_query('select * from client ORDER BY FIO ');
while ($all_client[] = mysql_fetch_assoc($result)) {}


Выводится он так -
	<td>
<
select name="client" style="width : 155">
<?php foreach($all_client AS $client): ?>
<?php
if(isset($client['id'])): ?>
<option value="<?php echo $client['id']; ?>">
<?php echo $client['FIO']; ?>
</option>
<?php endif;?>
<?php
endforeach;?>
</td>


И как теперь вывести текущего клиента, после нажатия на кнопку?

<form method="POST">
<
input type="submit" value="Вывести" name="vid">
</
form>

<?php if(isset($_POST['vid']))
{
echo "Вы выбрали - " . $client['FIO']. "клиента";
} ?>




Спустя 14 минут, 48 секунд (25.05.2011 - 20:08) T1grOK написал(а):
Так когда пост пришел с данными, значение селекта(ид клиента) используешь в запросе:

$result = mysql_query("select * from client WHERE `user_id`= '{$_POST['client']}' ORDER BY FIO");

И из результата "выдираешь" свое FIO

Спустя 8 минут, 50 секунд (25.05.2011 - 20:17) T1grOK написал(а):
И еще если поле в БД FIO может использоваться в разделенном виде, то есть отдельно Фамилия Имя Отчество, то лучше подумать над более правильной структурой БД, потому как это противоречит первой нормальной форме(атомарность)

Спустя 7 минут, 24 секунды (25.05.2011 - 20:24) Lightt написал(а):
Таким способом он вообще в select ничего не выводит...


что так -
$result = mysql_query("select * from client WHERE `id`= '{$_POST['client']}' ORDER BY FIO");

что так -
$result = mysql_query("select * from client WHERE `id`= ".$_POST['client']." ORDER BY FIO");


Спустя 5 минут, 28 секунд (25.05.2011 - 20:30) T1grOK написал(а):

<?php if(isset($_POST['vid']))
{
$result = mysql_query("select * from client WHERE `id`= '{$_POST['client']}' ORDER BY FIO");
$row = mysql_fetch_array($result);
echo "Вы выбрали - " . $row['FIO']. "клиента";
} ?>

Ну и можно еще установить лимит, чтобы за зря не шерстить оставшуюся часть таблицы

Спустя 4 минуты, 10 секунд (25.05.2011 - 20:34) Lightt написал(а):
Спасибо =) теперь работает, а что за лимит?

Спустя 4 минуты, 25 секунд (25.05.2011 - 20:38) T1grOK написал(а):
По логике с определенным ID может быть только одна запись, поэтому и задаем в запросе, что останавливаемся, если найдена одна запись

$result = mysql_query("select * from client WHERE `id`= '{$_POST['client']}' ORDER BY FIO LIMIT 1");

Спустя 3 минуты, 56 секунд (25.05.2011 - 20:42) Renden написал(а):
T1grOK
Ну если ключи (id) генерируются sql то он проследит за тем чтоб они были уникальными, думаю LIMIT 1 тут лишнее smile.gif

Спустя 34 секунды (25.05.2011 - 20:43) pavlik написал(а):
если я правильно понял, то имелось ввиду что-то такое:

//----------------------------------------------------------
include_once "mysql.php";
//----------------------------------------------------------
$link = mysql_connect ( "localhost" , "root" , "" ) ;
mysql_select_db('mistery');

//получаем всех пользователей
$result = mysql_query('select * from client ORDER BY FIO ');
while ($row = mysql_fetch_assoc($result))
{
$all_client[$row['id']] = $row;
}

if(isset($all_client[$_POST['id']]))
echo ('Вы выбрали '.$all_client[$_POST['client']]['FIO'].' клиента');



<form method="POST">

<select
name="client" style="width : 155">
<?php
foreach($all_client AS $client): ?>
<?php
if(isset($client['id'])): ?>
<option
value="<?php echo $client['id']; ?>">
<?php
echo $client['FIO']; ?>
</option>
<?php
endif;?>
<?php
endforeach;?>

<input
type="submit" value="Вывести" name="vid">

</form>



Спустя 7 минут, 19 секунд (25.05.2011 - 20:50) pavlik написал(а):
извиняюсь, поправочка
вместо if(isset($all_client[$_POST['id']]))
надо if(isset($all_client[$_POST['client']]))

Спустя 29 минут, 4 секунды (25.05.2011 - 21:19) Renden написал(а):
pavlik
Для этого есть кнопка "редактировать" smile.gif)

Спустя 11 часов, 2 минуты, 35 секунд (26.05.2011 - 08:22) linker написал(а):
И ORDER здесь
mysql_query("select * from client WHERE `id`= '{$_POST['client']}' ORDER BY FIO");
тоже лишний как и LIMIT 1 здесь
$result = mysql_query("select * from client WHERE `id`= '{$_POST['client']}' ORDER BY FIO LIMIT 1");
Достаточно просто
mysql_query("select * from `client` WHERE `id`= " . (integer)$_POST['client']);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.