Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с выбором значения select
 
 автор: Belkin   (18.07.2011 в 05:34)   письмо автору
 
 

Смотрите, есть в таблице 3 ячейки - имя, пароль и статус (обозначаются они как name1, name2, status). При значении ячейки status - 0, юзер не может авторизироваться, если там 1 - то может. При регистрации юзер автоматически получает значение status 0 и задача ниже указанного кода - подтверждение регистрации. Сама конструкция - выводит на страницу юзеров у которых статус -= 0 и выведены они через select, то есть админ просто нажимает несколько юзеров и к ним есть действие - авторизовать.
Там все работает, кроме самой проблемы, а проблема в том, что когда админ выбрал 1 или несколько человек - выбранный статус присваивается всем участникам ! Не понимаю, как сделать, чтобы при нажатии в sql запрос указывался именно тот человек, который выбран. Помогите пожалуйста )


<?php
session_start
();
$db mysql_connect ("localhost""root""");
mysql_select_db("13.07.11"$db);
if(!
$_SESSION['user_auth']){
    
header("Location: enter.php");
    exit;
}
if(
$_GET['do'] == 'logout'){
    unset(
$_SESSION['user_auth']);
    
session_destroy();
    
header("Location: index.php");
    exit;
}
?>

<p><a href="index.php">Главная</a> | <a href="contact.php">Контакты</a> | <a href="admin.php">Админка</a> | <a href="reg.php">Регистрация</a></p>
<hr />
Это admin.php
<a href="?do=logout">Выход</a>
<br />
<div style="float: left;">
 
</div>
<div style="float: left;">
<?php
$query 
"SELECT * FROM names where status = '0' ";
$res mysql_query($query); 
while(
$row mysql_fetch_array($res))
{
$nomer $row['name1'];
}
$selectt $_POST['selectt'];
$b_status =  $_POST['statusn'];
$up mysql_query("UPDATE names SET status='$b_status' WHERE name1='$selectt';"$db);
echo 

<form method='post'>
<select name='statusn'>
  <option value='0'>Сделать не авторизованным</option>
  <option value='1'>Сделать авторизованным</option>
</select>
  <input name='up' type='submit' value='Отправить'>
</form>"
;


echo 

<form method='post'>
<select multiple='1' style='height:20px;' name='selectt' >
  <option value='.
$nomer.'>Логин:".$nomer."</option>
</select>
</form>"
;


?>
</div>

<?php 

?>

  Ответить  
 
 автор: Emm   (18.07.2011 в 06:46)   письмо автору
 
   для: Belkin   (18.07.2011 в 05:34)
 

У вас тут ошибка с конкатенацией: <option value='".$nomer."'>Логин:".$nomer."</option>
Кроме того, если вы хотите менять статус сразу нескольким юзерам, то передавать необходимо массив с логинами, тоесть name='selectt[]', а в скрипте формируете запрос с условием WHERE name1 IN (список логинов) ...как превратить массив в список наверно должны знать уже, пробуйте решить, что не знаете спрашивайте.

  Ответить  
 
 автор: Belkin   (18.07.2011 в 15:35)   письмо автору
 
   для: Emm   (18.07.2011 в 06:46)
 

Спасибо вам большое за то, что помогли ! Действительно спасибо !
Правда на счет массива я примерно понимаю как его создать, но в этом случае не до конца )
не могли бы вы детальней показать? и sql запрос так же )


Гость, вам тоже спасибо ! Буду делать проверку ) чтобы не задавать зря вопросов ) спасибо !

  Ответить  
 
 автор: Belkin   (19.07.2011 в 21:14)   письмо автору
 
   для: Emm   (18.07.2011 в 06:46)
 

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

  Ответить  
 
 автор: cheops   (20.07.2011 в 12:35)   письмо автору
 
   для: Belkin   (19.07.2011 в 21:14)
 

Вы добились того, что из формы в обработчик передается массив? Или загвоздка с формирование запроса?

  Ответить  
 
 автор: Belkin   (20.07.2011 в 18:49)   письмо автору
 
   для: cheops   (20.07.2011 в 12:35)
 

возможно, вот просто мне написали

>У вас тут ошибка с конкатенацией: <option value='".$nomer."'>Логин:".$nomer."</option>
Кроме того, если вы хотите менять статус сразу нескольким юзерам, то передавать необходимо массив с логинами, тоесть name='selectt[]', а в скрипте формируете запрос с условием WHERE name1 IN (список логинов) ...как превратить массив в список наверно должны знать уже, пробуйте решить, что не знаете спрашивайте.

и я пытаюсь понять как это реализовать.

  Ответить  
 
 автор: Belkin   (20.07.2011 в 18:49)   письмо автору
 
   для: cheops   (20.07.2011 в 12:35)
 

возможно, вот просто мне написали

>У вас тут ошибка с конкатенацией: <option value='".$nomer."'>Логин:".$nomer."</option>
Кроме того, если вы хотите менять статус сразу нескольким юзерам, то передавать необходимо массив с логинами, тоесть name='selectt[]', а в скрипте формируете запрос с условием WHERE name1 IN (список логинов) ...как превратить массив в список наверно должны знать уже, пробуйте решить, что не знаете спрашивайте.

и я пытаюсь понять как это реализовать.

  Ответить  
 
 автор: Гость   (18.07.2011 в 09:47)   письмо автору
 
   для: Belkin   (18.07.2011 в 05:34)
 

Один совет - когда что-о не работает так как ожидалось - проверяйте данные которые передаете скрипту. В данном случае попробуйте вывести перед обработкой пост запроса данные которые получаете:
echo '<pre>';  var_dump($_POST); echo '</pre>'; 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования