繁体   English   中英

如何有条件写入数据库?

[英]How to write to database with condition?

我是PHP的新手,有条件写入数据库时​​遇到问题。 我有变量数组。 我需要将值1的变量保存到数据库中。 其他一些变量的值可以为0或5,正如我所说的,也可以为1。

带有变量的数组:

<?php session_start();    
        $qA01_1 = $_SESSION['qA01_1'];     
        $qA01_2 = $_SESSION['qA01_2'];
        $qA01_3 = $_SESSION['qA01_3'];
        $qA01_4 = $_SESSION['qA01_4'];
        $qA01_5 = $_SESSION['qA01_5'];

        $qA02_1 = $_SESSION['qA02_1'];     
        $qA02_2 = $_SESSION['qA02_2'];
        $qA02_3 = $_SESSION['qA02_3'];
        $qA02_4 = $_SESSION['qA02_4'];
        $qA02_5 = $_SESSION['qA02_5'];

        $qA03_1 = $_SESSION['qA03_1'];     
        $qA03_2 = $_SESSION['qA03_2'];
        $qA03_3 = $_SESSION['qA03_3'];
        $qA03_4 = $_SESSION['qA03_4'];
        $qA03_5 = $_SESSION['qA03_5'];

        $qA04_1 = $_SESSION['qA04_1'];     
        $qA04_2 = $_SESSION['qA04_2'];
        $qA04_3 = $_SESSION['qA04_3'];
        $qA04_4 = $_SESSION['qA04_4'];
        $qA04_5 = $_SESSION['qA04_5'];

        $qA05_1 = $_SESSION['qA05_1'];     
        $qA05_2 = $_SESSION['qA05_2'];
        $qA05_3 = $_SESSION['qA05_3'];
        $qA05_4 = $_SESSION['qA05_4'];
        $qA05_5 = $_SESSION['qA05_5'];
?>

这是我尝试在有条件的情况下写入数据库(不起作用):

 $connect = mysqli_connect('localhost', 'root', 'pass', 'database');
        $varValue = 1;
        $values = [];
        foreach([1,2,3,4,5] as $index) {
           if(['$qA01_'.$index] == 1) {
               $values[] = "('$qA01_{$index}')";
           };
        }
        $query = "INSERT INTO table ($varValue) VALUES ". implode(',',$values);  
        mysqli_query($connect, $query);

您能帮我提供正确的代码吗?

这是旧表,它们的值分别为0、1、5。

现在我想拥有三个桌子。 第一个用于值1“ tableOK”,第二个用于值5“ tableNOK”,第三个类似信息表“ tableinfo”。

在Excel中创建的三个新表以及在phpMyAdmin中的希望(我的建议)

对于新结构,假定默认情况下字段的值为0:

 $connect = mysqli_connect('localhost', 'root', 'pass', 'database');
if (mysqli_connect_errno())
    echo "Error connection: (" . mysqli_connect_errno().")";

$values = [];
$fields = [];
for($i=1;$i<=30;$i++)
{
    foreach([1,2,3,4,5] as $index) 
    {
        if(${'qA'.str_pad($i, 2, "0", STR_PAD_LEFT).'_'.$index} == 1) 
        {
            $values[] = ${'qA'.str_pad($i, 2, "0", STR_PAD_LEFT).'_'.$index};
            $fields[] = 'qA'.str_pad($i, 2, "0", STR_PAD_LEFT).'_'.$index;
        }
    }
}
$query = "INSERT INTO tableOK(".implode(',',$fields).") VALUES (". implode(',',$values).")";

if( !  mysqli_query($connect, $query))
{
    echo "Error query: ".mysqli_error($connect)
}

这将检查所有$qA01_...$qA30_...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM