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
Форумы портала PHP.SU :: Версия для печати :: как из базы выбрать значения массива?
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » как из базы выбрать значения массива?

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

1. fireXXX - 06 Октября, 2009 - 19:19:46 - перейти к сообщению
У меня есть массив $_POST, надо по нему сделать выборку из таблицы

попробовал через array_shift повыдергивать значения переменных, но создать sql запрос не получается что-то,

поясню, например в $_POST есть id=1, id=2, id=3
ну и мне надо сделать селект id= где эти значения

спасибо
(Добавление)
сделал так

PHP:
скопировать код в буфер обмена
  1.  
  2. for ($i=0; $i<count($_POST); $i++) {
  3. $sqll="SELECT * FROM `clients` WHERE `id` = ".array_shift($_POST)."";
  4.  

(Добавление)
хм, криво как-то

выдает меньше, чем есть строчек

например
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST[submit])) {
  3. echo count($_POST);
  4.  
  5. echo "<br><BR><BR>";
  6.  
  7. for ($i-0; $i<=count($_POST); $i++) {
  8.    
  9.     echo array_shift($_POST)."<BR><BR>";
  10.    
  11. }}
  12.  
  13.  


прикол в том, что echo count($_POST) показывает 5
а в цикле выводит 3 строчки, в чем прикол?! (
2. fireXXX - 06 Октября, 2009 - 21:21:15 - перейти к сообщению
блин...
!!!!!!!!!!!!!

вот такой код

PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST[submit])) {
  3. echo count($_POST);
  4.  
  5. echo "<BR>";
  6. print_r ($_POST); echo "<BR>";
  7. for ($i=0; $i<=count($_POST); $i++) {
  8.  
  9.     echo "<br><BR>".count($_POST)."<BR>";
  10.     echo array_shift($_POST)."<BR><BR>";
  11.     print_r ($_POST); echo "<BR>";
  12. }}
  13.  

Выдает мне вот такое в монитор, там по сути остались 2 элемента массива, почему он их не вытаскивает?
CODE (text):
скопировать код в буфер обмена
  1.  
  2. 5
  3. Array ( [39] => 39 [40] => 40 [38] => 38 [37] => 37 [submit] => Tisk )
  4.  
  5.  
  6. 5
  7. 39
  8.  
  9. Array ( [0] => 40 [1] => 38 [2] => 37 [submit] => Tisk )
  10.  
  11.  
  12. 4
  13. 40
  14.  
  15. Array ( [0] => 38 [1] => 37 [submit] => Tisk )
  16.  
  17.  
  18. 3
  19. 38
  20.  
  21. Array ( [0] => 37 [submit] => Tisk )
  22.  
3. Viper - 07 Октября, 2009 - 07:33:36 - перейти к сообщению
зачем array_shift ?
вы в цикле уже перебираете значения из $_POST

PHP:
скопировать код в буфер обмена
  1. $ids = $_POST;
  2.  
  3. for ($i=0, $n=count($ids); $i<$n; $i++) {
  4. $sqll="SELECT * FROM `clients` WHERE `id` = '".int()$ids[$i]."'";
  5. ...



как-то так наверное...
4. fireXXX - 09 Октября, 2009 - 23:40:51 - перейти к сообщению
что-то не получается, а тут
PHP:
скопировать код в буфер обмена
  1. $sqll="SELECT * FROM `clients` WHERE `id` = '".int()$ids[$i]."'";


синтакс еррор
5. EuGen - 09 Октября, 2009 - 23:48:04 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $sql="SELECT * FROM `clients` WHERE `id` IN (".join(',', $_POST).")"
  4. ?>
  5.  

При этом не передавайте Ваш 'submit', иначе ошибка будет
6. fireXXX - 09 Октября, 2009 - 23:54:39 - перейти к сообщению
Viper пишет:
зачем array_shift ?
вы в цикле уже перебираете значения из $_POST


Спасибо за наводку, и в правду, переделал по-другому

 

Powered by ExBB FM 1.0 RC1