带有check in数组的mysql查询中的IF语句

时间:2011-11-12 11:09:54

标签: php mysql arrays

我试图在查询中放入3个IF语句,而不是添加一些PHP代码。 显示的错误是FUNCTION admin_demo.in_array does not exist

if($pr_aantal[$i] > 0)
{
    // voer query uit
    $sql = "INSERT INTO planning_producten
        (
            planning_id,
            product_id,
            aantal,
            datum_snijden,
            datum_zetten,
            datum_uitbesteed,
            user_id
        )
        VALUES
        (
            '".$planning_id."',
            '".$pr_id[$i]."',
            '".$pr_aantal[$i]."',
            IF(in_array('1', '".$pr_bewerking_id[$i]."'), STR_TO_DATE('".$datum_snijden."','%d-%m-%Y'), '0000-00-00'),
            IF(in_array('2', '".$pr_bewerking_id[$i]."'), STR_TO_DATE('".$datum_zetten."','%d-%m-%Y'), '0000-00-00'),
            IF(in_array('3', '".$pr_bewerking_id[$i]."'), STR_TO_DATE('".$datum_uitbesteden."','%d-%m-%Y'), '0000-00-00'),
            '".$_SESSION['user_id']."'
        )
    ";

    // resultaat van query
    if(!$res = mysql_query($sql,$con))
    {
        include('includes/errors/database_error.php');
    }
}

$pr_bewerking_id[$i]创建于:

while ($row_i = mysql_fetch_array($res_i))
{
    $i++;

    // maak select name
    $name_bewerking_id = 'name_bewerking_id'.$i;
    ?>

    <tr valign="top">
        <td>
        <select name="<?php echo $name_bewerking_id ?>[]" multiple="multiple" size="2">
        <?php
            $sql_bew = "SELECT id, bewerking FROM bewerkingen ORDER BY orderby ASC";
            $res_bew = mysql_query($sql_bew,$con);
            while ($row_bew = mysql_fetch_assoc($res_bew))
            { ?>
                <option value="<?php echo $row_bew['id']; ?>"><?php echo $row_bew['bewerking']; ?></option>
        <?php } ?>
        </select>
        </td>
    </tr>
<?php }

然后发送

$pr_bewerking_id[$i] = array();

for ($i = 0; $i <= $pr_aantal_regels; $i++)
{
    $pr_bewerking_id[$i] = $_POST['name_bewerking_id'.$i];
}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我想你想改变这个:

IF(in_array('1', '".$pr_bewerking_id[$i]."'),

对此:

IF(FIND_IN_SET('1', '" . $csv_string . "'),

您的代码中也存在SQL注入漏洞。使用mysql_real_escape_string或参数化查询。