Есть запрос -
//----------------------------------------------------------
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 написал(а):
Так когда пост пришел с данными, значение селекта(ид клиента) используешь в запросе:
И из результата "выдираешь" свое FIO
$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 тут лишнее
Ну если ключи (id) генерируются sql то он проследит за тем чтоб они были уникальными, думаю LIMIT 1 тут лишнее

Спустя 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']]))
вместо if(isset($all_client[$_POST['id']]))
надо if(isset($all_client[$_POST['client']]))
Спустя 29 минут, 4 секунды (25.05.2011 - 21:19) Renden написал(а):
pavlik
Для этого есть кнопка "редактировать"
)
Для этого есть кнопка "редактировать"

Спустя 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']);