PHP将数组值插入mysql
我在将数组插入MySQL数据库时遇到问题。我想我发现我不能将数组插入到表的列中,我应该分离数组的值,然后执行insert操作。但我不知道如何分离这些值并插入这些值。我应该分离这些值而不使用数组吗 另外,我想创建一个表来显示存储的db的所有值(数字1-10) 谢谢大家 下面是我的代码: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
$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'];
}
?>