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 :: как из массива сформировать запрос sql?

 PHP.SU

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


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

> Без описания
контрабандист
Отправлено: 23 Февраля, 2012 - 14:55:16
Post Id


Новичок


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


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




есть массив сформированный чекбоксами Arr[] вот код
$q="select * from tovar9 where";
foreach($_POST['Arr'] as $k=>$v) $q=$q." (id=$v) or ";
$q= substr($q,0,strlen($q)-4);
if (!mysql_connect($SERVER,$USER,$PASSWD))
{
echo $head;
echo "<h1>Ошибка сервера MySQL.Mysql server error</h1>";
echo"</body></html>";
exit;
}
mysql_select_db($DB);
echo"$q<br>";
$r=mysql_query($q)or die("ошибка в запросе");
в результате выводит
select * from tovar9 where (id=1ошибка в запросе
а должно же
select * from tovar9 where (id=1)
или
select * from tovar9 where (id=1)or(id=2)
почему то не выводит")"
если посмотреть html код получившейся страницы там
select * from tovar9 where (id=1</tr) or (id=2</tr)
 
 Top
snikers987
Отправлено: 23 Февраля, 2012 - 15:00:53
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




implode ?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
контрабандист
Отправлено: 23 Февраля, 2012 - 15:03:40
Post Id


Новичок


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


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




извини не понял,что implode?
 
 Top
snikers987
Отправлено: 23 Февраля, 2012 - 15:16:29
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




контрабандист пишет:
извини не понял,что implode?

А что может быть implode() ?
Функция разумеется.
www.php.su/functions/?implode

(Отредактировано автором: 23 Февраля, 2012 - 15:23:04)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
контрабандист
Отправлено: 23 Февраля, 2012 - 15:28:20
Post Id


Новичок


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


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




а как её тут вставить,я чего то не догоняю
 
 Top
snikers987
Отправлено: 23 Февраля, 2012 - 15:49:52
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




PHP:
скопировать код в буфер обмена
  1.  
  2. $q="select * from tovar9 where `id`= ";
  3. $q = $q.implode(' or `id`= ', $_POST['Arr']);
  4.  

?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
контрабандист
Отправлено: 23 Февраля, 2012 - 15:55:56
Post Id


Новичок


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


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




всё равно пишет
select * from tovar9 where id= 3ошибка в запросе
 
 Top
snikers987
Отправлено: 23 Февраля, 2012 - 15:57:31
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




контрабандист пишет:
всё равно пишет
select * from tovar9 where id= 3ошибка в запросе


echo $q;
в студию
а также var_dump($_POST['Arr']);

(Отредактировано автором: 23 Февраля, 2012 - 16:00:42)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
контрабандист
Отправлено: 23 Февраля, 2012 - 16:09:43
Post Id


Новичок


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


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




$q-select * from tovar9 where id= 3
var_dump($_POST['Arr'])-array(2) { [0]=> string(5) "1 string(5) "2</tr" }
 
 Top
snikers987
Отправлено: 23 Февраля, 2012 - 16:14:20
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




Ну так и смотрите что за мусор у вас в пост приходит.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
контрабандист
Отправлено: 23 Февраля, 2012 - 16:20:59
Post Id


Новичок


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


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




по html коду должно бы value=1и value=2,вроде так и есть
если так
$n="";
foreach($_POST['Arr'] as $k=>$v)
if($k=$v)
{
$n=$n." (id=$v) or ";
}
else
if($k>$v)
{
$n=$n." (id=$v)";
}

$q=$q.$n;
echo $q;
то пишет
select * from tovar9 where (id=1</tr) or (id=2</tr) or ошибка в запросе
как из этого
select * from tovar9 where (id=1</tr) or (id=2</tr) or
сделать это
select * from tovar9 where(id=1</tr) or (id=2</tr) ума хватило сделать
а как поубирать </tr>?

(Отредактировано автором: 24 Февраля, 2012 - 18:16:11)

 
 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