当执行mysql insert 时插入两条是怎么回事? 本帖最后由 Eason_____________ 于 2013-07-25 11:25:44 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 index.php 代码就只有这些?是不是执行后又刷新了?跳转了? 还有就是js传过来的 title 和 content 如果判断一下index.phpif($_GET['title']!=''){$sql="insert into json_bbs values('','".$gettitle."','".$getcontent."','".$i->iamgePath."','".time()."','')";mysql_query($sql);}在执行的话 就只插入一条数据了,但是获取不到$i->iamgePath的值,$i->iamgePath就为空。不判断的话 是插入以下两条数据:id title content images time uid 127 aaa yyyyy 1374722311 0 128 2013_7_25_11_18_32.jpg 1374722312 0 还有就是js传过来的 title 和 content js传来的title和content?怎么传递的会不会js传递时执行了脚本,提交上传图片时又执行了insert。所以是两条记录? 如果判断一下index.phpif($_GET['title']!=''){$sql="insert into json_bbs values('','".$gettitle."','".$getcontent."','".$i->iamgePath."','".time()."','')";mysql_query($sql);}在执行的话 就只插入一条数据了,但是获取不到$i->iamgePath的值,$i->iamgePath就为空。不判断的话 是插入以下两条数据:id title content images time uid 127 aaa yyyyy 1374722311 0 128 2013_7_25_11_18_32.jpg 1374722312 0 你这个一看就是2个不同操作执行得到的插入你这2个动作,一个应该是更新动作,应该说是后来执行的那个动作只能是更新动作,不能是插入动作所以你本身逻辑上出现了问题,插入2条数据属于正常的 还有就是js传过来的 title 和 content js传来的title和content?怎么传递的会不会js传递时执行了脚本,提交上传图片时又执行了insert。所以是两条记录?json传递的 斑竹说表单,你给数据库。。是表单部分的代码和js部分的代码。ajax?传递过来不就执行insert了么?提交表单又执行一次。不就刚好两条数据么 <!DOCTYPE html><html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px"> <head> <title> </title> <meta charset="utf-8"> <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> <link rel="stylesheet" href="css/ui-input.css"> <link rel="stylesheet" href="css/ui-btn.css"> <link rel="stylesheet" href="css/ui-img.css"> <link rel="stylesheet" href="css/ui-list.css"> <link rel="stylesheet" href="css/ui-res.css"> <link rel="stylesheet" href="css/ui-fold.css"> <link rel="stylesheet" href="css/ui-base.css"> <link rel="stylesheet" href="css/ui-box.css"> <link rel="stylesheet" href="css/ui-color.css"> <script src="js/zy_anim.js"> </script> <script src="js/zy_control.js"> </script> <script src="js/zy_tmpl.js"> </script> <script src="js/zy_click.js"> </script> <script src="js/zy_json.js"> </script> </head> <body class="um-vp" ontouchstart><div class="btm" id="yinying" style="display:none"></div><div class="c-wh" id="fb_content"> <!--文本开始--> <div class="ub t-bla ulab"> <div class="ub-f1 c-wh uba uc-a1 b-gra us-i uinput uinn4" style="margin-top:5%"> <input placeholder="标题..." type="text" name="title" class="uc-a1" id="fb-title"> </div> </div> <!--文本结束--> <!--文本开始--> <div class="ub t-bla ulab fb-btn"> <div class="ub-f1 c-wh uba uc-a1 b-gra us-i uinput uinn4"> <textarea placeholder="请输入内容" name="content" rows="7" id="fb-content" ></textarea> </div> </div> <!--文本结束--> <div style=" display:none; width:20%; height:15%; margin-top:5%; left:1%" id="show_img"> <span class="del" onClick="del()">x</span> <img style="width:100%; height:100%;display:block; border:1px solid #CCC;" src="" id="showPic" /> </div> <!--按钮开始--> <div ontouchstart="zy_touch('btn-act')" class="btn uba b-bla uinn5 c-blu1 c-m2 uc-a1 t-wh img-add" onclick="picSeclet();" id="selectPic">添加图片</div> <!--按钮结束--> <!--按钮开始--> <div ontouchstart="zy_touch('btn-act')" class="btn uba b-bla uinn5 c-blu1 c-m2 uc-a1 t-wh img-add" onClick="upload()">发布</div> <!--按钮结束--> <div style="position:absolute; bottom:0; width:100%; z-index:100; display:none" id="divPic"> <div ontouchstart="zy_touch('c-m2');" data-role="button" onclick="uexImageBrowser.pick();" class="btn uba b-bla uinn5 c-bla c-m1 uc-a1 t-wh img-add1"> <span class="ui-btn-inner ui-btn-corner-all"> <span class="ui-btn-text t-wh">从手机相册选择</span> </span> </div> <div ontouchstart="zy_touch('c-m2');" data-role="button" onclick="uexCamera.open();" class="btn uba b-bla uinn5 c-bla c-m1 uc-a1 t-wh img-add1"> <span class="ui-btn-inner ui-btn-corner-all"> <span class="ui-btn-text t-wh">拍照</span> </span> </div> <div ontouchstart="zy_touch('c-m2');" data-role="button" onclick="picClose();" class="btn uba b-bla uinn5 c-bla c-m1 uc-a1 t-wh img-add1"> <span class="ui-btn-inner ui-btn-corner-all"> <span class="ui-btn-text t-wh">取消</span> </span> </div> </div></div></body><script>zy_init();window.uexOnload=function(type){ if(!type){ uexWindow.setBounce("1"); uexWindow.showBounceView("0","#FFF","0"); uexWindow.showBounceView("1","#FFF","0"); }} var uploadHttp = "http://www.huayan.cd/json/bbs/index.php"; function setLog(msg){ document.getElementById("msgid").innerHTML = msg; } function upload(){ if($$("fb-title").value=='' || $$("fb-content").value==''){ alert("标题或内容不能为空"); }else{ uexUploaderMgr.createUploader(1,uploadHttp); var fbtitle = $$("fb-title").value; var fbcontent = $$("fb-content").value; var url = 'http://localhost/json/bbs/index.php?title='+fbtitle+'&content='+fbcontent; $.getJSON(url,function(data){ alert(data.title); alert(data.content); alert(data.time); alert(data.time1); }); } } function picSeclet(){ document.getElementById("yinying").style.display = "block"; document.getElementById("divPic").style.display = "block"; } function picClose(){ document.getElementById("yinying").style.display = "none"; document.getElementById("divPic").style.display = "none"; } function del(){ document.getElementById("show_img").style.display = "none"; document.getElementById("showPic").src = ""; } var upload_image_url = ""; window.uexOnload = function(){ uexCamera.cbOpen = function(opCode, dataType, data){ upload_image_url = data; document.getElementById("showPic").src = data; document.getElementById("show_img").style.display = "block"; document.getElementById("divPic").style.display = "none"; document.getElementById("yinying").style.display = "none"; } uexWidgetOne.cbError = function(opCode, errorCode, errorInfo){ setLog(errorInfo); } uexImageBrowser.cbPick=function (opCode,dataType,data){ if(dataType==0){ upload_image_url = data; document.getElementById("showPic").src = data; document.getElementById("show_img").style.display = "block"; document.getElementById("yinying").style.display = "none"; document.getElementById("divPic").style.display = "none"; } } uexUploaderMgr.cbCreateUploader =function(opCode,dataType,data){ if(data == 0){ uexUploaderMgr.uploadFile(1,upload_image_url,"filename",4); uexWindow.toast(1,5,"图片上传中...",0); }else{ } } uexUploaderMgr.onStatus = function(opCode,fileSize,percent,serverPath,status){ switch (status) { case 0: break; case 1: uexWindow.closeToast();//关闭提示消息框 uexWindow.toast(0,5,"发布成功!",2000); //uexWindow.closeToast();//关闭提示消息框 uexUploaderMgr.closeUploader(1); break; case 2: uexWindow.closeToast();//关闭提示消息框 uexWindow.toast(0,5,"出错啦~",2000); uexUploaderMgr.closeUploader(1); break; } } }</script></html> 斑竹说表单,你给数据库。。是表单部分的代码和js部分的代码。ajax?传递过来不就执行insert了么?提交表单又执行一次。不就刚好两条数据么如果我判断一下 就是 if($_GET["title"]!=''){}就执行了一次。但是插入的数据 $i->iamgePath的值就为空 这个是怎么回事? 嗯 这是我用appcan做的手机app. 现在插入两条的问题解决了 就是插入的时候 获取不到$i->iamgePath的值。 但是当insert 是两条的时候 $i->iamgePath就会有。 这是在提交文字105 var url = 'http://localhost/json/bbs/index.php?title='+fbtitle+'&content='+fbcontent;106 $.getJSON(url,function(data){这是在提交文件152 uexUploaderMgr.uploadFile(1,upload_image_url,"filename",4); 虽然在文本提交前就启动了文件提交102 uexUploaderMgr.createUploader(1,uploadHttp);但一般文件上传总要慢于文本提交,所以你能先收到 get 数据,后收到 上传文件但如果情况恰恰相反呢? 现在插入两条的问题解决了 就是插入的时候 获取不到$i->iamgePath的值。 但是当insert 是两条的时候 $i->iamgePath就会有。给你一个思路和建议,其实不少网站也在用,就是:上图图片部分用iframe,在ajax提交的是时候先执行上图图片部分,然后得到返回正常的图片地址(这里还不插入数据库,纯粹上传图片)以后再执行再执行文字表单部分,这时候图片地址是用一个参数传,这样就可以和文字一起插入数据库了,也就只有一条数据了 现在插入两条的问题解决了 就是插入的时候 获取不到$i->iamgePath的值。 但是当insert 是两条的时候 $i->iamgePath就会有。给你一个思路和建议,其实不少网站也在用,就是:上图图片部分用iframe,在ajax提交的是时候先执行上图图片部分,然后得到返回正常的图片地址(这里还不插入数据库,纯粹上传图片)以后再执行再执行文字表单部分,这时候图片地址是用一个参数传,这样就可以和文字一起插入数据库了,也就只有一条数据了谢谢两位版主给的思路。 我在试一试 求一个php数据缓存类,谢谢! 新手 新手求解include_path问题? php读取xml 给js解析的问题 在“正则表达式”里有个“分组”的概念,用()实现的,请问,这个“分组”的作用是什么啊? 关于网页合成图片的问题,类似于qq秀 如何判断字符串中是否含html代码? 用smtp类发送邮件的问题 问一下关于FastTemplate的问题 将FORM信息发送指定邮箱 php字符串转化成数组 关于一个定时任务的解决方案
是不是执行后又刷新了?跳转了?
如果判断一下index.phpif($_GET['title']!=''){
$sql="insert into json_bbs values('','".$gettitle."','".$getcontent."','".$i->iamgePath."','".time()."','')";
mysql_query($sql);
}
在执行的话 就只插入一条数据了,但是获取不到$i->iamgePath的值,$i->iamgePath就为空。不判断的话 是插入以下两条数据:
id title content images time uid
127 aaa yyyyy 1374722311 0
128 2013_7_25_11_18_32.jpg 1374722312 0
会不会js传递时执行了脚本,提交上传图片时又执行了insert。所以是两条记录?
如果判断一下index.phpif($_GET['title']!=''){
$sql="insert into json_bbs values('','".$gettitle."','".$getcontent."','".$i->iamgePath."','".time()."','')";
mysql_query($sql);
}
在执行的话 就只插入一条数据了,但是获取不到$i->iamgePath的值,$i->iamgePath就为空。不判断的话 是插入以下两条数据:
id title content images time uid
127 aaa yyyyy 1374722311 0
128 2013_7_25_11_18_32.jpg 1374722312 0
你这个一看就是2个不同操作执行得到的插入
你这2个动作,一个应该是更新动作,应该说是后来执行的那个动作只能是更新动作,不能是插入动作所以你本身逻辑上出现了问题,插入2条数据属于正常的
会不会js传递时执行了脚本,提交上传图片时又执行了insert。所以是两条记录?json传递的
斑竹说表单,你给数据库。。
是表单部分的代码和js部分的代码。ajax?
传递过来不就执行insert了么?
提交表单又执行一次。
不就刚好两条数据么
<!DOCTYPE html>
<html class="um landscape min-width-240px min-width-320px min-width-480px min-width-768px min-width-1024px">
<head>
<title>
</title>
<meta charset="utf-8">
<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<link rel="stylesheet" href="css/ui-input.css"> <link rel="stylesheet" href="css/ui-btn.css">
<link rel="stylesheet" href="css/ui-img.css">
<link rel="stylesheet" href="css/ui-list.css">
<link rel="stylesheet" href="css/ui-res.css">
<link rel="stylesheet" href="css/ui-fold.css">
<link rel="stylesheet" href="css/ui-base.css">
<link rel="stylesheet" href="css/ui-box.css">
<link rel="stylesheet" href="css/ui-color.css">
<script src="js/zy_anim.js">
</script>
<script src="js/zy_control.js">
</script>
<script src="js/zy_tmpl.js">
</script>
<script src="js/zy_click.js">
</script>
<script src="js/zy_json.js">
</script>
</head>
<body class="um-vp" ontouchstart>
<div class="btm" id="yinying" style="display:none"></div>
<div class="c-wh" id="fb_content"> <!--文本开始-->
<div class="ub t-bla ulab">
<div class="ub-f1 c-wh uba uc-a1 b-gra us-i uinput uinn4" style="margin-top:5%">
<input placeholder="标题..." type="text" name="title" class="uc-a1" id="fb-title">
</div>
</div>
<!--文本结束--> <!--文本开始-->
<div class="ub t-bla ulab fb-btn">
<div class="ub-f1 c-wh uba uc-a1 b-gra us-i uinput uinn4">
<textarea placeholder="请输入内容" name="content" rows="7" id="fb-content" ></textarea>
</div>
</div>
<!--文本结束-->
<div style=" display:none; width:20%; height:15%; margin-top:5%; left:1%" id="show_img">
<span class="del" onClick="del()">x</span>
<img style="width:100%; height:100%;display:block; border:1px solid #CCC;" src="" id="showPic" />
</div> <!--按钮开始-->
<div ontouchstart="zy_touch('btn-act')" class="btn uba b-bla uinn5 c-blu1 c-m2 uc-a1 t-wh img-add" onclick="picSeclet();" id="selectPic">添加图片</div>
<!--按钮结束-->
<!--按钮开始-->
<div ontouchstart="zy_touch('btn-act')" class="btn uba b-bla uinn5 c-blu1 c-m2 uc-a1 t-wh img-add" onClick="upload()">发布</div>
<!--按钮结束--> <div style="position:absolute; bottom:0; width:100%; z-index:100; display:none" id="divPic">
<div ontouchstart="zy_touch('c-m2');" data-role="button" onclick="uexImageBrowser.pick();" class="btn uba b-bla uinn5 c-bla c-m1 uc-a1 t-wh img-add1">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text t-wh">从手机相册选择</span>
</span>
</div>
<div ontouchstart="zy_touch('c-m2');" data-role="button" onclick="uexCamera.open();" class="btn uba b-bla uinn5 c-bla c-m1 uc-a1 t-wh img-add1">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text t-wh">拍照</span>
</span>
</div>
<div ontouchstart="zy_touch('c-m2');" data-role="button" onclick="picClose();" class="btn uba b-bla uinn5 c-bla c-m1 uc-a1 t-wh img-add1">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text t-wh">取消</span>
</span>
</div>
</div></div>
</body>
<script>
zy_init();
window.uexOnload=function(type)
{
if(!type){
uexWindow.setBounce("1");
uexWindow.showBounceView("0","#FFF","0");
uexWindow.showBounceView("1","#FFF","0");
}
}
var uploadHttp = "http://www.huayan.cd/json/bbs/index.php";
function setLog(msg){
document.getElementById("msgid").innerHTML = msg;
}
function upload(){
if($$("fb-title").value=='' || $$("fb-content").value==''){
alert("标题或内容不能为空");
}else{
uexUploaderMgr.createUploader(1,uploadHttp);
var fbtitle = $$("fb-title").value;
var fbcontent = $$("fb-content").value;
var url = 'http://localhost/json/bbs/index.php?title='+fbtitle+'&content='+fbcontent;
$.getJSON(url,function(data){
alert(data.title);
alert(data.content);
alert(data.time);
alert(data.time1);
});
}
}
function picSeclet(){
document.getElementById("yinying").style.display = "block";
document.getElementById("divPic").style.display = "block";
}
function picClose(){
document.getElementById("yinying").style.display = "none";
document.getElementById("divPic").style.display = "none";
}
function del(){
document.getElementById("show_img").style.display = "none";
document.getElementById("showPic").src = "";
}
var upload_image_url = "";
window.uexOnload = function(){
uexCamera.cbOpen = function(opCode, dataType, data){
upload_image_url = data;
document.getElementById("showPic").src = data;
document.getElementById("show_img").style.display = "block";
document.getElementById("divPic").style.display = "none";
document.getElementById("yinying").style.display = "none";
}
uexWidgetOne.cbError = function(opCode, errorCode, errorInfo){
setLog(errorInfo);
}
uexImageBrowser.cbPick=function (opCode,dataType,data){
if(dataType==0){
upload_image_url = data;
document.getElementById("showPic").src = data;
document.getElementById("show_img").style.display = "block";
document.getElementById("yinying").style.display = "none";
document.getElementById("divPic").style.display = "none";
}
}
uexUploaderMgr.cbCreateUploader =function(opCode,dataType,data){
if(data == 0){
uexUploaderMgr.uploadFile(1,upload_image_url,"filename",4);
uexWindow.toast(1,5,"图片上传中...",0);
}else{
}
}
uexUploaderMgr.onStatus = function(opCode,fileSize,percent,serverPath,status){
switch (status) {
case 0:
break;
case 1:
uexWindow.closeToast();//关闭提示消息框
uexWindow.toast(0,5,"发布成功!",2000);
//uexWindow.closeToast();//关闭提示消息框
uexUploaderMgr.closeUploader(1);
break;
case 2:
uexWindow.closeToast();//关闭提示消息框
uexWindow.toast(0,5,"出错啦~",2000);
uexUploaderMgr.closeUploader(1);
break; }
}
}
</script>
</html>
斑竹说表单,你给数据库。。
是表单部分的代码和js部分的代码。ajax?
传递过来不就执行insert了么?
提交表单又执行一次。
不就刚好两条数据么如果我判断一下 就是 if($_GET["title"]!=''){}
就执行了一次。但是插入的数据 $i->iamgePath的值就为空 这个是怎么回事?
现在插入两条的问题解决了 就是插入的时候 获取不到$i->iamgePath的值。
但是当insert 是两条的时候 $i->iamgePath就会有。
105 var url = 'http://localhost/json/bbs/index.php?title='+fbtitle+'&content='+fbcontent;
106 $.getJSON(url,function(data){这是在提交文件
152 uexUploaderMgr.uploadFile(1,upload_image_url,"filename",4); 虽然在文本提交前就启动了文件提交
102 uexUploaderMgr.createUploader(1,uploadHttp);但一般文件上传总要慢于文本提交,所以你能先收到 get 数据,后收到 上传文件
但如果情况恰恰相反呢?
现在插入两条的问题解决了 就是插入的时候 获取不到$i->iamgePath的值。
但是当insert 是两条的时候 $i->iamgePath就会有。
给你一个思路和建议,其实不少网站也在用,就是:
上图图片部分用iframe,在ajax提交的是时候先执行上图图片部分,然后得到返回正常的图片地址(这里还不插入数据库,纯粹上传图片)以后再执行再执行文字表单部分,这时候图片地址是用一个参数传,这样就可以和文字一起插入数据库了,也就只有一条数据了
现在插入两条的问题解决了 就是插入的时候 获取不到$i->iamgePath的值。
但是当insert 是两条的时候 $i->iamgePath就会有。
给你一个思路和建议,其实不少网站也在用,就是:
上图图片部分用iframe,在ajax提交的是时候先执行上图图片部分,然后得到返回正常的图片地址(这里还不插入数据库,纯粹上传图片)以后再执行再执行文字表单部分,这时候图片地址是用一个参数传,这样就可以和文字一起插入数据库了,也就只有一条数据了谢谢两位版主给的思路。 我在试一试