新人做一个表单编辑功能的实现,遇到瓶颈求帮助
<?php $myconn=mysql_connect("localhost","root",""); mysql_select_db("login_test",$myconn); if(!$myconn){ echo "连接失败".mysql_error(); }?><html> <head> <title>Edit</title> <link href="css.css" rel="stylesheet" type="text/css" /> </head> <body> <form method="POST"> <table> <tr class="table_head"> <td>objname</td> <td>objinfo</td> </tr> <?php $strSql="select * from table_test"; $result=mysql_query($strSql,$myconn); while($row=mysql_fetch_array($result)) { $objname1=$row['objname']; $objinfo1=$row['objinfo']; ?> <tr> <td><input type="hidden" name="id" value="<?php echo $row['objid']?>"> <input type="text" name="objname" value="<?php echo $objname1?>" /></td> <td><input type="text" name="objinfo" value="<?php echo $objinfo1?>" /></td> </tr> <?php } print_r($_POST); if(!empty($_POST)){ $objname=$_POST["objname"]; $objinfo=$_POST["objinfo"]; $id = $_POST['id']; $strSql="update table_test set objname='$objname',objinfo='$objinfo' where objid='$id'"; $result=mysql_query($strSql,$myconn); if(!$result){ die(mysql_error()); } echo"修改成功!"; } ?> </table> <br> <div style="display:inline;"> <input type="submit" class="button_black"/> <input type="button" class="button_black" value="返回" onclick="javascript:document.location.href='test.php'"/> </form> </body><?php mysql_close($myconn); ?></html>
以上是代码,只能成功修改最后一行,原因是我用while读取后Post选择的总是最后一行,想了有段时间了想不出怎么做
求指导,最好有代码,js可以看懂一点,Jquery咱不会使,毕竟php和js还没完全搞明白
回复讨论(解决方案)
顺带一提,这个页面的前一个页面没有传任何值出来,没有session。
这个页面表单打印全是直接从数据库调的
没人吗
你post的应该只有最后一个记录
input 的name属性名一样,取最后一个
你post的应该只有最后一个记录
这个我知道了,我想求个解决思路或者具体代码来实现我的目的
你每个表单的name得不同,不然只能获取到$_POST[‘objname’]和$_POST['objinfo']两个post值
你每个表单的name得不同,不然只能获取到$_POST[‘objname’]和$_POST['objinfo']两个post值
input 的name属性名一样,取最后一个
我是用id调的数据,问题在三个column的name都是一样的,只有value不一样,怎么才能把他们分开分别调用
你每个表单的name得不同,不然只能获取到$_POST[‘objname’]和$_POST['objinfo']两个post值
这个思路好!我试试
你每个表单的name得不同,不然只能获取到$_POST[‘objname’]和$_POST['objinfo']两个post值
这么一改怎么用post提数据啊?
$objname=$_POST["objname"];怎么写
你还要能分条保存啊?那分数组。
这样,获得三个数组。之后你想直接插还是整合成一个数组再插都行
你还要能分条保存啊?那分数组。
这样,获得三个数组。之后你想直接插还是整合成一个数组再插都行
<?php $myconn=mysql_connect("localhost","root",""); mysql_select_db("login_test",$myconn); if(!$myconn){ echo "连接失败".mysql_error(); }?><html> <head> <title>Edit</title> <link href="css.css" rel="stylesheet" type="text/css" /> </head> <body> <form method="POST"> <table> <tr class="table_head"> <td>objname</td> <td>objinfo</td> </tr> <?php $strSql="select * from table_test"; $result=mysql_query($strSql,$myconn); while($row=mysql_fetch_array($result)) { $objname1=$row['objname']; $objinfo1=$row['objinfo']; ?> <tr> <td><input type="hidden" name="id[]" value="<?php echo $row['objid']?>"> <input type="text" name="objname[]" value="<?php echo $objname1?>" /></td> <td><input type="text" name="objinfo[]" value="<?php echo $objinfo1?>" /></td> </tr> <?php } print_r($_POST); if(!empty($_POST)){ $i=0; while($row=mysql_fetch_array($result)) { $objname=$_POST["objname[i]"]; $objinfo=$_POST["objinfo[i]"]; $id = $_POST["id[i]"]; $strSql2="update table_test set objname='$objname',objinfo='$objinfo' where objid='$id'"; $result2=mysql_query($strSql,$myconn); if(!$result2){ die(mysql_error()); } $i++; } echo"修改成功!"; } ?> </table> <br> <div style="display:inline;"> <input type="submit" class="button_black"/> <input type="button" class="button_black" value="返回" onclick="javascript:document.location.href='test.php'"/> </form> </body><?php mysql_close($myconn); ?></html>
我按照你的思路改成这样了
post获得的是一整个表单,我让他逐条更新写入,但是为啥数据库那边没改啊
post获得的值打在这里:Array ( [id] => Array ( [0] => 7 [1] => 8 [2] => 9 [3] => 10 ) [objname] => Array ( [0] => 123123 [1] => 321 [2] => 456 [3] => 654 ) [objinfo] => Array ( [0] => 132132 [1] => 321 [2] => 456 [3] => 654 ) )
你还要能分条保存啊?那分数组。
这样,获得三个数组。之后你想直接插还是整合成一个数组再插都行
这个数组思路好,赞一个,这样post取值的通过遍历数组就可以区分不同的name:_POST['objname[0],学习了,我想法是通过js修改name值,有点蛋疼!
你还要能分条保存啊?那分数组。
这样,获得三个数组。之后你想直接插还是整合成一个数组再插都行
<?php $myconn=mysql_connect("localhost","root",""); mysql_select_db("login_test",$myconn); if(!$myconn){ echo "连接失败".mysql_error(); }?><html> <head> <title>Edit</title> <link href="css.css" rel="stylesheet" type="text/css" /> </head> <body> <form method="POST"> <table> <tr class="table_head"> <td>objname</td> <td>objinfo</td> </tr> <?php $strSql="select * from table_test"; $result=mysql_query($strSql,$myconn); while($row=mysql_fetch_array($result)) { $objname1=$row['objname']; $objinfo1=$row['objinfo']; ?> <tr> <td><input type="hidden" name="id[]" value="<?php echo $row['objid']?>"> <input type="text" name="objname[]" value="<?php echo $objname1?>" /></td> <td><input type="text" name="objinfo[]" value="<?php echo $objinfo1?>" /></td> </tr> <?php } print_r($_POST); if(!empty($_POST)){ $i=0; while($row=mysql_fetch_array($result)) { $objname=$_POST["objname[i]"]; $objinfo=$_POST["objinfo[i]"]; $id = $_POST["id[i]"]; $strSql2="update table_test set objname='$objname',objinfo='$objinfo' where objid='$id'"; $result2=mysql_query($strSql,$myconn); if(!$result2){ die(mysql_error()); } $i++; } echo"修改成功!"; } ?> </table> <br> <div style="display:inline;"> <input type="submit" class="button_black"/> <input type="button" class="button_black" value="返回" onclick="javascript:document.location.href='test.php'"/> </form> </body><?php mysql_close($myconn); ?></html>
我按照你的思路改成这样了
post获得的是一整个表单,我让他逐条更新写入,但是为啥数据库那边没改啊
post获得的值打在这里:Array ( [id] => Array ( [0] => 7 [1] => 8 [2] => 9 [3] => 10 ) [objname] => Array ( [0] => 123123 [1] => 321 [2] => 456 [3] => 654 ) [objinfo] => Array ( [0] => 132132 [1] => 321 [2] => 456 [3] => 654 ) )
$_POST["objname[i]"];这个是不是有问题。
你还要能分条保存啊?那分数组。
这样,获得三个数组。之后你想直接插还是整合成一个数组再插都行
<?php $myconn=mysql_connect("localhost","root",""); mysql_select_db("login_test",$myconn); if(!$myconn){ echo "连接失败".mysql_error(); }?><html> <head> <title>Edit</title> <link href="css.css" rel="stylesheet" type="text/css" /> </head> <body> <form method="POST"> <table> <tr class="table_head"> <td>objname</td> <td>objinfo</td> </tr> <?php $strSql="select * from table_test"; $result=mysql_query($strSql,$myconn); while($row=mysql_fetch_array($result)) { $objname1=$row['objname']; $objinfo1=$row['objinfo']; ?> <tr> <td><input type="hidden" name="id[]" value="<?php echo $row['objid']?>"> <input type="text" name="objname[]" value="<?php echo $objname1?>" /></td> <td><input type="text" name="objinfo[]" value="<?php echo $objinfo1?>" /></td> </tr> <?php } print_r($_POST); if(!empty($_POST)){ $i=0; while($row=mysql_fetch_array($result)) { $objname=$_POST["objname[i]"]; $objinfo=$_POST["objinfo[i]"]; $id = $_POST["id[i]"]; $strSql2="update table_test set objname='$objname',objinfo='$objinfo' where objid='$id'"; $result2=mysql_query($strSql,$myconn); if(!$result2){ die(mysql_error()); } $i++; } echo"修改成功!"; } ?> </table> <br> <div style="display:inline;"> <input type="submit" class="button_black"/> <input type="button" class="button_black" value="返回" onclick="javascript:document.location.href='test.php'"/> </form> </body><?php mysql_close($myconn); ?></html>
我按照你的思路改成这样了
post获得的是一整个表单,我让他逐条更新写入,但是为啥数据库那边没改啊
post获得的值打在这里:Array ( [id] => Array ( [0] => 7 [1] => 8 [2] => 9 [3] => 10 ) [objname] => Array ( [0] => 123123 [1] => 321 [2] => 456 [3] => 654 ) [objinfo] => Array ( [0] => 132132 [1] => 321 [2] => 456 [3] => 654 ) )
$_POST["objname[i]"];这个是不是有问题。
改成$i了还是不行,有引号方面的问题吗?
你还要能分条保存啊?那分数组。
这样,获得三个数组。之后你想直接插还是整合成一个数组再插都行
<?php $myconn=mysql_connect("localhost","root",""); mysql_select_db("login_test",$myconn); if(!$myconn){ echo "连接失败".mysql_error(); }?><html> <head> <title>Edit</title> <link href="css.css" rel="stylesheet" type="text/css" /> </head> <body> <form method="POST"> <table> <tr class="table_head"> <td>objname</td> <td>objinfo</td> </tr> <?php $strSql="select * from table_test"; $result=mysql_query($strSql,$myconn); while($row=mysql_fetch_array($result)) { $objname1=$row['objname']; $objinfo1=$row['objinfo']; ?> <tr> <td><input type="hidden" name="id[]" value="<?php echo $row['objid']?>"> <input type="text" name="objname[]" value="<?php echo $objname1?>" /></td> <td><input type="text" name="objinfo[]" value="<?php echo $objinfo1?>" /></td> </tr> <?php } print_r($_POST); if(!empty($_POST)){ $i=0; while($row=mysql_fetch_array($result)) { $objname=$_POST["objname[i]"]; $objinfo=$_POST["objinfo[i]"]; $id = $_POST["id[i]"]; $strSql2="update table_test set objname='$objname',objinfo='$objinfo' where objid='$id'"; $result2=mysql_query($strSql,$myconn); if(!$result2){ die(mysql_error()); } $i++; } echo"修改成功!"; } ?> </table> <br> <div style="display:inline;"> <input type="submit" class="button_black"/> <input type="button" class="button_black" value="返回" onclick="javascript:document.location.href='test.php'"/> </form> </body><?php mysql_close($myconn); ?></html>
我按照你的思路改成这样了
post获得的是一整个表单,我让他逐条更新写入,但是为啥数据库那边没改啊
post获得的值打在这里:Array ( [id] => Array ( [0] => 7 [1] => 8 [2] => 9 [3] => 10 ) [objname] => Array ( [0] => 123123 [1] => 321 [2] => 456 [3] => 654 ) [objinfo] => Array ( [0] => 132132 [1] => 321 [2] => 456 [3] => 654 ) )
$_POST["objname[i]"];这个是不是有问题。
改成$i了还是不行,有引号方面的问题吗?
这样想好像不是很好,现在不是可以获得post过来的3个数组了吗,你根据3个数组再组合下,分别插入数据库,不要想着把$_POST[["objname[i]"]插入数据库,而是把$data=array();$data=$_POST["objname"],然后在分别把3个新定义的数组插入数据库。
if(!empty($_POST)){ while($row=mysql_fetch_array($result)) { $objname=$_POST["objname[]"]; print_r($_POST["objname[]"]); print_r($objname); $objinfo=$_POST["objinfo[]"]; $id = $_POST["id[]"]; $strSql2="update table_test set objname='$objname',objinfo='$objinfo' where objid='$id'"; $result2=mysql_query($strSql,$myconn); if(!$result2){ die(mysql_error()); } } echo"修改成功!"; }
想了一下,是不是不用$i也行,但是还是取不出post里数组的数据(感觉是个基础问题)
有劳大佬了
你还要能分条保存啊?那分数组。
这样,获得三个数组。之后你想直接插还是整合成一个数组再插都行
<?php $myconn=mysql_connect("localhost","root",""); mysql_select_db("login_test",$myconn); if(!$myconn){ echo "连接失败".mysql_error(); }?><html> <head> <title>Edit</title> <link href="css.css" rel="stylesheet" type="text/css" /> </head> <body> <form method="POST"> <table> <tr class="table_head"> <td>objname</td> <td>objinfo</td> </tr> <?php $strSql="select * from table_test"; $result=mysql_query($strSql,$myconn); while($row=mysql_fetch_array($result)) { $objname1=$row['objname']; $objinfo1=$row['objinfo']; ?> <tr> <td><input type="hidden" name="id[]" value="<?php echo $row['objid']?>"> <input type="text" name="objname[]" value="<?php echo $objname1?>" /></td> <td><input type="text" name="objinfo[]" value="<?php echo $objinfo1?>" /></td> </tr> <?php } print_r($_POST); if(!empty($_POST)){ $i=0; while($row=mysql_fetch_array($result)) { $objname=$_POST["objname[i]"]; $objinfo=$_POST["objinfo[i]"]; $id = $_POST["id[i]"]; $strSql2="update table_test set objname='$objname',objinfo='$objinfo' where objid='$id'"; $result2=mysql_query($strSql,$myconn); if(!$result2){ die(mysql_error()); } $i++; } echo"修改成功!"; } ?> </table> <br> <div style="display:inline;"> <input type="submit" class="button_black"/> <input type="button" class="button_black" value="返回" onclick="javascript:document.location.href='test.php'"/> </form> </body><?php mysql_close($myconn); ?></html>
我按照你的思路改成这样了
post获得的是一整个表单,我让他逐条更新写入,但是为啥数据库那边没改啊
post获得的值打在这里:Array ( [id] => Array ( [0] => 7 [1] => 8 [2] => 9 [3] => 10 ) [objname] => Array ( [0] => 123123 [1] => 321 [2] => 456 [3] => 654 ) [objinfo] => Array ( [0] => 132132 [1] => 321 [2] => 456 [3] => 654 ) )
找了半天,你这执行的是$sqlstr,但定义的字符串是$sqlstr2
title | link |
|
我本地测试了一下,这样是可以用的,以上是table里的代码
if(!empty($_POST)){ while($row=mysql_fetch_array($result)) { $objname=$_POST["objname[]"]; print_r($_POST["objname[]"]); print_r($objname); $objinfo=$_POST["objinfo[]"]; $id = $_POST["id[]"]; $strSql2="update table_test set objname='$objname',objinfo='$objinfo' where objid='$id'"; $result2=mysql_query($strSql,$myconn); if(!$result2){ die(mysql_error()); } } echo"修改成功!"; }
想了一下,是不是不用$i也行,但是还是取不出post里数组的数据(感觉是个基础问题)
有劳大佬了
我写了print_r($_POST["$objname"]);和print_r($_POST["$objname[]"]); 都没反应
$objname=array();
$bojname=$_POST['bojname'];
$objinfo=array();
$bojname=$_POST['bojname'];
$id=array();
$id=$_POST['id'];
for ($i=0,i
}
试试这个思路
用 $objname=$_POST["objname"][$i]; 吧。
title | link |
|
我本地测试了一下,这样是可以用的,以上是table里的代码
原来是这样写的,受教了
用 $objname=$_POST["objname"][$i]; 吧。
一下子没想到这个,$_POST["objname"][$i]这样的得到post的值,应该就可以插入了,问题应该可以解决了。
用 $objname=$_POST["objname"][$i]; 吧。
多谢大佬帮助,基本上问题都解决了,还差一个定循环里i的终止值为表单长度,这个我自己来吧
真是太感谢了!
用 $objname=$_POST["objname"][$i]; 吧。
也多些这位仁兄的热心帮助!太感动了
<?php $myconn=mysql_connect("localhost","root",""); mysql_select_db("login_test",$myconn); if(!$myconn){ echo "连接失败".mysql_error(); }?><html> <head> <title>Edit</title> <link href="css.css" rel="stylesheet" type="text/css" /> </head> <body> <form method="POST"> <table> <tr class="table_head"> <td>objname</td> <td>objinfo</td> </tr> <?php $strSql="select * from table_test"; $result=mysql_query($strSql,$myconn); while($row=mysql_fetch_array($result)) { $objname1=$row['objname']; $objinfo1=$row['objinfo']; ?> <tr> <td><input type="hidden" name="id[]" value="<?php echo $row['objid']?>"> <input type="text" name="objname[]" value="<?php echo $objname1?>" /></td> <td><input type="text" name="objinfo[]" value="<?php echo $objinfo1?>" /></td> </tr> <?php } print_r($_POST); if(!empty($_POST)){ for($i=0;$i< mysql_num_rows($result);$i++){ $objname=$_POST["objname"][$i]; print_r($objname); $objinfo=$_POST["objinfo"][$i]; print_r($objinfo); $id = $_POST["id"][$i]; print_r($id); $strSql2="update table_test set objname='$objname',objinfo='$objinfo' where objid='$id'"; $result2=mysql_query($strSql2,$myconn); if(!$result2){ die(mysql_error()); } } echo"修改成功!"; } ?> </table> <br> <div style="display:inline;"> <input type="submit" class="button_black"/> <input type="button" class="button_black" value="返回" onclick="javascript:document.location.href='test.php'"/> </form> </body><?php mysql_close($myconn); ?></html>
这里是最终成型代码
感谢fedcgfedbe和csjazqx的热心帮助!
用 $objname=$_POST["objname"][$i]; 吧。
多谢大佬帮助,基本上问题都解决了,还差一个定循环里i的终止值为表单长度,这个我自己来吧
真是太感谢了!
咱不是大佬。。做这行也没多久的。只是在帮助别人的时候自己也能温习。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 클라이언트 URL (CURL) 확장자는 개발자를위한 강력한 도구이며 원격 서버 및 REST API와의 원활한 상호 작용을 가능하게합니다. PHP CURL은 존경받는 다중 프로모토콜 파일 전송 라이브러리 인 Libcurl을 활용하여 효율적인 execu를 용이하게합니다.

Alipay PHP ...

고객의 가장 긴급한 문제에 실시간 인스턴트 솔루션을 제공하고 싶습니까? 라이브 채팅을 통해 고객과 실시간 대화를 나누고 문제를 즉시 해결할 수 있습니다. 그것은 당신이 당신의 관습에 더 빠른 서비스를 제공 할 수 있도록합니다.

기사는 PHP 5.3에 도입 된 PHP의 LSB (Late STATIC BING)에 대해 논의하여 정적 방법의 런타임 해상도가보다 유연한 상속을 요구할 수있게한다. LSB의 실제 응용 프로그램 및 잠재적 성능

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

기사는 입력 유효성 검사, 인증 및 정기 업데이트를 포함한 취약점을 방지하기 위해 프레임 워크의 필수 보안 기능을 논의합니다.

이 기사에서는 프레임 워크에 사용자 정의 기능 추가, 아키텍처 이해, 확장 지점 식별 및 통합 및 디버깅을위한 모범 사례에 중점을 둡니다.

PHP 개발에서 PHP의 CURL 라이브러리를 사용하여 JSON 데이터를 보내면 종종 외부 API와 상호 작용해야합니다. 일반적인 방법 중 하나는 컬 라이브러리를 사용하여 게시물을 보내는 것입니다 ...
