新人做一个表单编辑功能的实现,遇到瓶颈求帮助
<?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的终止值为表单长度,这个我自己来吧
真是太感谢了!
咱不是大佬。。做这行也没多久的。只是在帮助别人的时候自己也能温习。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Alipay PHP ...

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...
