php把数组写入mysql的方法

在提交页面有三个值,id当前页面id ,catid当前页面所在栏目,ly这个值是一个有多个。
id 15
catid 2
ly 12,15,20,30,35
正常情况写入表后是
id catid ly
15 2 12
15 2 15
15 2 20

写入表时如果ly是一个值可以写入,如果ly是多个值,请问怎么写入mysql呢?
最新回答
身虽存〃心已死゛

2024-04-30 04:45:56

您好,您可以参考如下代码:

<?php


/* 获取HTML表单提交的数据 */

$id = _POST["id"];
$catid = _POST["catid"];
$ly = array("data***");


/* 连接数据库,如果出错显示消息结束程序,否则继续执行数据库命令 */
$con = mysql_connect("127.0.0.1","user","password");
if($con == false)
{
echo "错误:系统数据库连接失败!错误信息:".mysql_error($con);
exit();
}else{
/* 选择需要操作数据库 */
mysql_select_db("mydb",$con);

/* 根据ly数组的长度决定执行多少次SQL语句 */
for($i=0;$i<count($ly);$i++)
{
/* 设置SQL查询语句 */
$sql = "INSERT INTO `biaoge` VALUES('{$id}','{$catid}',".$ly[$i].")";

/* 如果SQL语句执行失败,返回错误代码; */
if(mysql_query($sql,$con) == false)
{
echo "数据库查询出错!错误代码:".mysql_errno($con);
mysql_close($con);
exit();
}
}

mysql_close($con);
echo "记录添加成功!";


}




?>

至于遍历数组,有很多种方式,如楼上用的foreach语句也是可以的。这里用for的原因是为了方便提问者理解。如果代码仍有不足或不明白的地方,请您继续追问,直到给您一个满意的答复为止~

追问
还是只能写进去一条是为什么呢?
追答
您好,请问您的$ly变量是否指向一个数组,并且有多个值?
追问
是的,有多个值
追答
您好,请问您那边的代码是怎么写的?为什么只能写进一条?
情伤己

2024-04-30 08:38:29

这个不难,把字符串变成数组,然后再循环一下这个数组,拼接成sql语句执行就行了,可以这么写

$id = 15;
$catid = 2;
$ly = '12,15,20,30,35';
$ly = explode(',', $ly);
$sql = 'insert into table (id,catid,ly) values (';
foreach ($ly as $value) {
$sql .= $value . ',';
}
$sql = rtrim($sql, ',') . ')';

希望对你有帮助

追问
循环这一块不太懂,能不能给讲讲呢,谢谢大神
追答
代码例子都给你了,你自己看着理解一下呗
小茉莉

2024-04-30 04:06:57

12,15,20,30,35 就这么写啊,用逗号连接成字符串写进去。
追问
你没看清题目
长发与酒

2024-04-30 07:39:33

将数组转为字符串,可以用implode(',',$array);
追问
就是往表里写的时候不知道怎么写进去
追答
转换为字符之后,可以直接用sql语句插入,insert into tablename (field)values ('$string')