静态数组值工作但动态不起作用

时间:2016-05-27 08:14:00

标签: php ajax

我正在使用ajax request.with名称if" id"发送一些复选框值。这是CSV文件生成器的一部分。

$pid=$_POST['id'];
$idarray1=array();
$idarray1  = explode(",",$pid);
foreach($idarray as $jesarray){
    printf( "SELECT * FROM clents where clientid='".$jesarray."'");
}

此代码显示clientid为空的SQL查询..

但是当我输入静态值时

$idarray1=array(36,37);
foreach($idarray as $jesarray){
    printf( "SELECT * FROM clents where clientid='".$jesarray."'");
}

这是完美的。

你们可以在我错的地方帮助我吗?

2 个答案:

答案 0 :(得分:0)

你的foreach vars中存在语法错误。

你输入 $ idarray 而不是 $ idarray1

更改

-- Solution #2: static query
SELECT  
    b.XmlCol.value('local-name(.)', 'SYSNAME') AS NC1_ColumnType,
    b.XmlCol.value('.', 'VARCHAR(50)') AS NC2_Value -- Replace with propper data type and max length
FROM (
    VALUES((SELECT  *
    FROM    dbo.SourceTable_83648326
    WHERE   C1 = 'v11' -- It select required source row
    FOR XML RAW, TYPE))
) a(XmlCol)
CROSS APPLY a.XmlCol.nodes(N'row/@*') b(XmlCol)

foreach($idarray as $jesarray){
    printf( "SELECT * FROM clents where clientid='".$jesarray."'");
}

答案 1 :(得分:0)

这里不需要使用foreach循环,只需使用IN。简单,没有阵列。

$pid = $_POST['id']; //36,37
printf('SELECT * FROM clents where clientid IN ($pid)');