将表单中的文本框作为数组来处理,然后循环数组,这样效率高,不要写很多代码。看看我写的方法:
>
数据库的读取能一次查询完成的尽量不要分成多次查询
不知道你用的是什么框架,如果有where_in方法的话可以用它来解决,先要构造出order_sn值的数组
没有的话就自己构造'or'条件字符串,然后用where一次查询完成
建议楼主把SQL语句显示出来,自然就明白问题在哪里了,我试着简单说一下,假设你的USER数据表有三个字段(name、age、sex),_POST提交数据也是这三个字段的,假设POST的值分别是abc、18、男,那么帖子的PHP会执行下面的三个SQL语句:
INSERT INTO USER(name) VALUES(abc)
INSERT INTO USER(age) VALUES(18)
INSERT INTO USER(sex) VALUES(男)
现在明白了吧,一、三两句会语法错误,英文没有在文本字段添加引号,第二句即使执行成功插入的记录只有年龄,姓名、性别为空,如果数据库有限制字段有效性,那么第二句插入也会失败,数据库需要的语句是:
INSERT INTO USER(name,age,sex) VALUES('abc',18,'男')
如果理解了,自然会下面这样写PHP语句:
$sql=<<<END
INSERT INTO USER(name,age,sex)
VALUES('{$_POST['name']}',{$_POST['age']},'{$_POST['sex']}')
END;
select ,DATE_FORMAT(add_time,'%Y-%m-%d') as add_date from donku_articles
把sql语句改成上面这种,另外最好不要用fetch_row这种索引方式取值,可以用fetch_assoc这种关联的方式,
另外你的这个 貌似在while里面用不到foreach,,smarty引擎我没用过,按理说它的赋值 应该也不用while一个一个赋值,把$smarty->assign('art_recommend_row',$new_result);这个赋值拿到循环外面(smarty没用过,按照thinkphp yii2 这些框架来说 赋值给模板不需要放在循环里面),我按照我的想法把你的改了一下
include('includes/initphp');$sql="SELECT ,DATE_FORMAT(add_time,'%Y-%m-%d') as add_date FROM `donku_articles`";
$query=$mysql->query($sql);
$result=[];
while($row=$mysql->fetch_assoc($query)){//这里应该是关联的形式,从你的fetch_row我猜是应该是fetch_assoc
$result[]=$row;
}
//下面是赋值给模板
$smarty->assign('art_recommend_row',$result);
这当然是不行的了,上面的告诉你的也是错误的,因为原因在于你循环的时候进行了数据库的查询,所以每次都是新的数据,指针当然要从第一条开始了。
所以不是你的循环的错误,而是你数据库查询代码位置的错误
要这样写
$num=mysql_query("select from china_city where parentid=0");
$n=mysql_num_rows($num);
for($i=1;$i<=$n;$i++){
${"row"$i}=mysql_fetch_array($num);
echo $i" "${"row"$i}['city']"<br>";
}
一般都是用foreach或while写的
foreach(mysql_fetch_array($num) as $key=>$value){}
while($row =mysql_fetch_array($num)){}
以上就是关于php+mysql中,如何通过循环方式把表单内容update进数据库全部的内容,包括:php+mysql中,如何通过循环方式把表单内容update进数据库、php foreach循环输入insert数据库、PHP循环代码不断获取数据库内容,导致数据读取很慢,怎么去修改下面的代码让数据读取快点(Thinkphp)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)