Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Нужна помощь с SELECT php + Mysql

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Нужна помощь с SELECT php + Mysql
UNTRUSTED
Отправлено: 11 Марта, 2012 - 17:02:12
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Здравствуйте уважаемые форумчане!! Уже голову сломал, весь гугл перерыл, но не могу найти ответа на свою задачу!! Подскажите возможно ли вообще такое, и как реализовать??

Вообщем в двух словах: требуется выбрать из база только те значения, которые отмечены чекбоксом!! Вот что-то типо такого что больше всего походит на правду, но если только все чекбоксы отмечены:

PHP:
скопировать код в буфер обмена
  1.  
  2. <form method="post">
  3. <input type="checkbox" name="a" value="id_user"> id_user
  4. <input type="checkbox" name="b" value="name"> name
  5. <input type="checkbox" name="c" value="email"> email
  6. <input type="submit" name="submit" value="отправить">
  7. </form>
  8. <?PHP
  9. if($_POST['submit']){
  10.   $a = $_POST['a']; $b = $_POST['b']; $c = $_POST['c'];
  11.   $sql = mysql_query("SELECT $a,$b,$c FROM users") or_die(mysql_error());
  12.   while( $rez = mysql_fetch_assoc($sql)){
  13.     echo" {$rez['id_user']},{$rez['name']},{$rez['email']} ";
  14.   }
  15. }
  16. ?>
  17.  
 
 Top
DelphinPRO
Отправлено: 11 Марта, 2012 - 17:15:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['submit'])){
  2.  
  3. $sql = mysql_query("SELECT * FROM users") or_die(mysql_error());
  4.  
  5. while( $rez = mysql_fetch_assoc($sql)){
  6.     if (isset($_POST['id_user'])) $a[] = $_POST['id_user'];
  7.     if (isset($_POST['name'])) $a[] = $_POST['name'];
  8.     if (isset($_POST['email'])) $a[] = $_POST['email'];
  9.     echo implode(',', $a);
  10.     unset($a);
  11. }
  12.  
  13. }

(Отредактировано автором: 11 Марта, 2012 - 17:16:00)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
UNTRUSTED
Отправлено: 11 Марта, 2012 - 17:34:14
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Выдает:
PHP:
скопировать код в буфер обмена
  1.  
  2. Warning: implode() [function.implode]: Invalid arguments passed in /xxx/yyy/zzz on line 25
  3. echo implode(',', $a); //это естественно 25 строка
  4.  

(Отредактировано автором: 11 Марта, 2012 - 17:36:42)

 
 Top
DelphinPRO
Отправлено: 11 Марта, 2012 - 17:40:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




затупил я немного Улыбка
последнюю часть выражений следует заменить
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['id_user'])) $a[] = $rez['id_user'];

(Добавление)
а ну и в постах проверять соответствующие ключи a, b, с (isset($_POST['a']))


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
UNTRUSTED
Отправлено: 11 Марта, 2012 - 17:46:29
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Но все равно огромное вам спасибо!! Все гениальное как всегда решается так простоУлыбка))
Вообщем если кому надо будет вот так это решается:
PHP:
скопировать код в буфер обмена
  1.  
  2. <form method="post">
  3. <input type="checkbox" name="a" value="id_user"> id_user
  4. <input type="checkbox" name="b" value="name"> name
  5. <input type="checkbox" name="c" value="email"> email
  6. <input type="submit" name="submit" value="отправить">
  7. </form>
  8. <?PHP
  9. if(isset($_POST['submit'])){
  10.   if (isset($_POST['a'])) $a[] = $_POST['a'];
  11.   if (isset($_POST['b'])) $a[] = $_POST['b'];
  12.   if (isset($_POST['c'])) $a[] = $_POST['c'];
  13.  
  14.   $b = implode(',', $a);
  15.  
  16.   $sql = mysql_query("SELECT $b FROM users") or die (mysql_error());
  17.     while( $rez = mysql_fetch_assoc($sql)){
  18.       echo" {$rez['id_user']},{$rez['name']},{$rez['email']} ";
  19.     }
  20.   unset($a);
  21. }
  22. ?>
  23.  

(Добавление)
PHP:
скопировать код в буфер обмена
  1.   while( $rez = mysql_fetch_assoc($sql)){
  2.     if (isset($_POST['a'])) $a[] = $rez['id_user'];
  3.     if (isset($_POST['b'])) $a[] = $rez['name'];
  4.     if (isset($_POST['c'])) $a[] = $rez['email'];
  5.  
  6.     echo' '.implode(',', $a).' ||| ';
  7.  
  8.     unset($a);
  9. }

Ну либо да, можно так еще... Только вот и в том и в другом случае выдет ошибку если ниодин чекбокс не выбран!!
 
 Top
DelphinPRO
Отправлено: 11 Марта, 2012 - 17:57:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




так это не делается
любой пользователь может подменить value в последнем чекбоксе на такое
CODE (text):
скопировать код в буфер обмена
  1. email from users; delete from users; /*

и у вас очистится вся таблица Улыбка
(Добавление)
проверку делайте если ни один не выбран
if (isset($a)) {
echo' '.implode(',', $a).' ||| ';
}
else {
echo 'не выбрано'
}


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
UNTRUSTED
Отправлено: 11 Марта, 2012 - 18:07:26
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




понял, в первом примере моем ошибка..
Где $a это value... А в value можно что угодно впихнуть вы правы...
А в последнем примере норм??
А как лучше??:
Вот так:
PHP:
скопировать код в буфер обмена
  1.  
  2.   if(isset($_POST['a']) || isset($_POST['b']) || isset($_POST['c'])){
  3.  
  4. ...
  5.  
  6. }else{echo"Ничего не выбрано";}
  7.  

Или так
PHP:
скопировать код в буфер обмена
  1.  
  2.  if($_POST['a'] != false || $_POST['b'] != false || $_POST['c'] != false){
  3.  
  4. ...
  5.  
  6. }else{echo"Ничего не выбрано";}
  7.  

(Добавление)
DelphinPRO, Надо теперь сообщения набирать, чтобы вам спасибо отметитьУлыбка))

(Отредактировано автором: 11 Марта, 2012 - 18:23:27)

 
 Top
DelphinPRO
Отправлено: 11 Марта, 2012 - 18:31:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




UNTRUSTED пишет:
А как лучше??:
первый вариант


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
UNTRUSTED
Отправлено: 11 Марта, 2012 - 18:51:06
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Ок!! Спасибо большое за помощь!!
Если кому понадобиться:
"КАК ВЫБРАТЬ ИЗ БАЗЫ MySQL ДАННЫЕ, КОТОРЫЕ ОТМЕЧЕНЫ ЧЕКБОКСОМ"
Вот полное решение:
PHP:
скопировать код в буфер обмена
  1.  
  2. <form method="post">
  3. <input type="checkbox" name="a" value="id_user"> id_user
  4. <input type="checkbox" name="b" value="name"> name
  5. <input type="checkbox" name="c" value="email"> email
  6. <input type="submit" name="submit" value="отправить">
  7. </form>
  8. <?PHP
  9. if(isset($_POST['submit'])){
  10.   if(isset($_POST['a']) || isset($_POST['b']) || isset($_POST['c'])){
  11.   $sql = mysql_query("SELECT * FROM users") or die (mysql_error());
  12.   while( $rez = mysql_fetch_assoc($sql)){
  13.     if (isset($_POST['a'])) $a[] = $rez['id_user'];
  14.     if (isset($_POST['b'])) $a[] = $rez['name'];
  15.     if (isset($_POST['c'])) $a[] = $rez['email'];
  16.  
  17.     echo' '.implode(',', $a).' ||| ';
  18.  
  19.     unset($a);
  20. }
  21. }else{echo"Ничего не выбрано";}
  22. }
  23. ?>
  24.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB