К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

как при помощи foreach cформировать запрос?

Гость
0 - 24.02.2012 - 15:37
есть массив сформированный чекбоксами нужно задать запрос
select * from tovar9 where (id=3) or (id=4)
пишу
$q="select * from tovar9 where";
$n="";
foreach($_POST['Arr'] as $k=>$v)
if($k<$v)
**
$n=$n." (id=$v) or ";
**
else

**
$n=$n." (id=$v)";
**

$q=$q.$n;
echo $q;

// $q="select * from tovar9 where id= ";
// $q = $q.implode(' or `id`= ', $_POST['Arr']);

if (!mysql_connect($SERVER,$USER,$PASSWD))
**
echo $head;
echo "<h1>Ошибка сервера MySQL.Mysql server error</h1>";
echo"</body></html>";
exit;
**
mysql_select_db($DB);
$r=mysql_query($q)or die("ошибка в запросе");
выводит
select * from tovar9 where (id=1</tr) or (id=2</tr) or ошибка в запросе
как убрать последнее "or" и убрать</tr>



Гость
1 - 24.02.2012 - 19:14
как из этого
select * from tovar9 where (id=1</tr) or (id=2</tr) or
сделать это
select * from tovar9 where(id=1</tr) or (id=2</tr)
а как поубирать </tr>?
Гость
2 - 24.02.2012 - 19:17
как из этого
select * from tovar9 where (id=1</tr) or (id=2</tr) or
сделать это
select * from tovar9 where(id=1</tr) or (id=2</tr) ума хватило сделать
а как поубирать </tr>?
Гость
3 - 24.02.2012 - 22:31
можно так:
Код:
...id=str_replace('</tr','',$v)...
а лучше выяснить откуда там tr и сделать валидацию на число + isset($_POST['Arr']).
Гость
4 - 25.02.2012 - 11:41
нет так
$v=($_POST['Arr'][$key]);
if ($key+1 < $size)
**
$n=$n."(id=str_replace('</tr','',$v)) or ";
**
else
if ($key+1 === $size)
**
$n=$n."(id=str_replace('</tr','',$v))";
break;
**

**
$q=$q.$n;
echo($q);
пишет
select * from tovar9 where(id=str_replace('</tr','',1</tr)) or (id=str_replace('</tr','',2</tr))
откуда</tr> не знаю
Гость
5 - 25.02.2012 - 11:46
а так
if ($key+1 < $size)
**
$n=$n."(id=str_replace('</tr>','',$v)) or ";
**
else
if ($key+1 === $size)
**
$n=$n."(id=str_replace('</tr>','',$v))";
break;
**
пишет
select * from tovar9 where(id=str_replace('','',1','',2</tr))
Гость
6 - 25.02.2012 - 11:51
а так
for ($key = 0, $size = count($_POST['Arr']); $key < $size; $key++) **
$v=($_POST['Arr'][$key]);
if ($key+1 < $size)
**
$d=str_replace('</tr','',$v);
$n=$n."(id=$d) or ";
**
else
if ($key+1 === $size)
**
$d=str_replace('</tr','',$v);
$n=$n."(id=$d)";
break;
**

**
работает спасибо
Гость
7 - 25.02.2012 - 21:26
q = "where 1=2";
...
q .= " or a=$i"


К списку вопросов
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск




Copyright ©, Все права защищены