Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP将数组值插入mysql_Php_Mysql_Arrays - Fatal编程技术网

PHP将数组值插入mysql

PHP将数组值插入mysql,php,mysql,arrays,Php,Mysql,Arrays,我在将数组插入MySQL数据库时遇到问题。我想我发现我不能将数组插入到表的列中,我应该分离数组的值,然后执行insert操作。但我不知道如何分离这些值并插入这些值。我应该分离这些值而不使用数组吗 另外,我想创建一个表来显示存储的db的所有值(数字1-10) 谢谢大家 下面是我的代码: $varNum = array('1','2','3','4','5','6','7','8','9','10'); //an array showed in the selection box &l

我在将数组插入MySQL数据库时遇到问题。我想我发现我不能将数组插入到表的列中,我应该分离数组的值,然后执行insert操作。但我不知道如何分离这些值并插入这些值。我应该分离这些值而不使用数组吗

另外,我想创建一个表来显示存储的db的所有值(数字1-10)

谢谢大家

下面是我的代码:

  $varNum = array('1','2','3','4','5','6','7','8','9','10');
  //an array showed in the selection box

  <form action="testing_Rand.php" method="post">
    <p><b><center>Choose an amount of random numbers in the selection box</center></b></p>
    <p>
            <select name="selectNum">
                <?php
                    foreach($varNum as $key => $value):
                    echo '<option value="'.$key.'">'.$value.'</option>';
                    endforeach;
                ?>
            </select>
    </p>
    <center><input type="Submit" value="submit"></center>
</form> 
    //A POST function to generate the random numbers


    //do post function
    if(isset($_POST["selectNum"]) ){
    $arrayRand=intval($_POST["selectNum"]);    
    for($i=0;$i<=$arrayRand;$i++){
         $varNum[$i]=rand(1,10000);    
    } 

    var_dump($varNum);  //show results  
    $newRand = "INSERT INTO testing_Rand (number1, number2, number3, number4, number5, number6, number7, number8, number9, number10) VALUES ('$varNum')";
    mysql_query($newRand);
}

    //show mysql database results

        $sqlDBrand = "SELECT id, number1, number2, number3, number4, number5, number6, number7, number8, number9, number10 FROM rand.testing";
$result = mysql_query($sqlDBrand) or die('MySQL query error');
while($row = mysql_fetch_array($result)){
    echo $row['id'];
    echo $row['number1'];
    echo $row['number2'];
    echo $row['number3'];
    echo $row['number4'];
    echo $row['number5'];
    echo $row['number6'];
    echo $row['number7'];
    echo $row['number8'];
    echo $row['number9'];
    echo $row['number10'];
}
$varNum=array('1','2','3','4','5','6','7','8','9','10');
//选择框中显示了一个数组
在选择框中选择一定数量的随机数

//生成随机数的POST函数 //执行post功能 如果(设置($_POST[“selectNum”])){ $arrayRand=intval($_POST[“selectNum”]); 对于($i=0;$i我认为这可能会对您有所帮助, 首先创建一个字符串
$sql
,然后在
mysql\u query()中使用它


这取决于你的数据和目标

查看函数
内爆

$arr = [1,2,3,4,5];
$data = implode ('|', [1,2,3,4,5]) //1|2|3|4|5
$arr = explode('|', $data); //Converted back

如果您需要它是可搜索的,请考虑将其序列化为XML

$arr = [1,2,3,4,5];
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($arr, array ($xml, 'addChild'));

回到一个阶段,您有一个表,其中列数固定,但要存储的数据字段数可变。这通常是个坏主意

最好将其分为两个表。一个表只存储用于标识数字组的内容,另一个表为每组数字存储多行;每组随机数字一行

这是数据标准化的基本部分

您可以将插入到2个表中,并通过如下方式获取值:-

<?php
    //A POST function to generate the random numbers


    //do post function
    if(isset($_POST["selectNum"]) )
    {
        $arrayRand=intval($_POST["selectNum"]);    
        for($i=0;$i<=$arrayRand;$i++)
        {
            $varNum[$i]=rand(1,10000);    
        } 

        if (count($varNum))
        {
            var_dump($varNum);  //show results  
            $newRand = "INSERT INTO testing_rand (id) VALUES(NULL)";
            mysql_query($newRand);
            $inserted_id = mysql_insert_id ();
            $newRand = "INSERT INTO testing_rand_numbers (rand_id, number) VALUES($inserted_id, ".implode("),($inserted_id, ", $varNum).")";
        }
    }

    //show mysql database results

    $sqlDBrand = "SELECT id, GROUP_CONCAT(b.number) AS all_numbers FROM testing_rand a LEFT OUTER JOIN testing_rand_numbers b ON a.id = b.rand_id";
    $result = mysql_query($sqlDBrand) or die('MySQL query error');
    while($row = mysql_fetch_array($result))
    {
        echo $row['id'];
        echo $row['all_numbers'];
    }
?>


INSERT
query在该代码中的位置?是否遗漏了
INSERT
query?向我们展示您的INSERT语句“INSERT INTO rand.testing(number1、number2、number3、number4、number5、number6、number7、number8、number9、number10)值(“$varNum”);但这不起作用,因为它无法将数组插入数据库,而且数组值没有分开。我不知道如何编写此函数,抱歉。
$arr = [1,2,3,4,5];
$data = serialize($arr);
unserialize($data);
<?php
    //A POST function to generate the random numbers


    //do post function
    if(isset($_POST["selectNum"]) )
    {
        $arrayRand=intval($_POST["selectNum"]);    
        for($i=0;$i<=$arrayRand;$i++)
        {
            $varNum[$i]=rand(1,10000);    
        } 

        if (count($varNum))
        {
            var_dump($varNum);  //show results  
            $newRand = "INSERT INTO testing_rand (id) VALUES(NULL)";
            mysql_query($newRand);
            $inserted_id = mysql_insert_id ();
            $newRand = "INSERT INTO testing_rand_numbers (rand_id, number) VALUES($inserted_id, ".implode("),($inserted_id, ", $varNum).")";
        }
    }

    //show mysql database results

    $sqlDBrand = "SELECT id, GROUP_CONCAT(b.number) AS all_numbers FROM testing_rand a LEFT OUTER JOIN testing_rand_numbers b ON a.id = b.rand_id";
    $result = mysql_query($sqlDBrand) or die('MySQL query error');
    while($row = mysql_fetch_array($result))
    {
        echo $row['id'];
        echo $row['all_numbers'];
    }
?>