Edit
以上是代碼,只能成功修改最後一行,原因是我用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"];怎麼寫
你還要能分條儲存啊?那分數組。
這樣,獲得三個數組。之後你想直接插還是整合成一個數組再插都行
你還要能分條儲存啊?那分數組。
這樣,獲得三個數組。之後你想直接插還是整合成一個數組再插都行
Edit
我按照你的思路改成這樣了
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值,有點蛋疼!
你還要能分條儲存啊?那分數組。
這樣,獲得三個數組。之後你想直接插還是整合成一個數組再插都行
Edit
我按照你的思路改成這樣了
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]"];這個是不是有問題。
你還要能分條儲存啊?那分數組。
這樣,獲得三個數組。之後你想直接插還是整合成一個數組再插都行
Edit
我按照你的思路改成這樣了
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了還是不行,有引號方面的問題嗎?
你還要能分條儲存啊?那分數組。
這樣,獲得三個數組。之後你想直接插還是整合成一個數組再插都行
Edit
我按照你的思路改成這樣了
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裡數組的資料(感覺是個基礎問題)
有勞大佬了
你還要能分條儲存啊?那分數組。
這樣,獲得三個數組。之後你想直接插還是整合成一個數組再插都行
Edit
我按照你的思路改成這樣了
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 |
$limit = 5; $strSql="select * from news limit ".$limit; $result=mysql_query($strSql,$myconn); while($row=mysql_fetch_array($result)) { $title1=$row['title']; $link1=$row['link']; ?>
|
|
} print_r($_POST); if(!empty($_POST)){ for($i=0;$i<$limit;$i++) { $title=$_POST["title"][$i]; $link=$_POST["link"][$i]; $id = $_POST["id"][$i]; $strSql = "UPDATE news SET title='".$title."' , link='".$link."' WHERE id='".$id."'"; $result2=mysql_query($strSql,$myconn); if(!$result2){ die(mysql_error()); }else{ //echo"修改成功!"; } } } ?>
我本地測試了一下,這樣是可以用的,以上是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 $sql='update table_test set objname='.$objname[$i].',objinfo='.$objinfo[$i].' where objid='.$id[$i];
}
試試這個思路
用 $objname=$_POST["objname"][$i]; 吧。
| title |
link |
$limit = 5; $strSql="select * from news limit ".$limit; $result=mysql_query($strSql,$myconn); while($row=mysql_fetch_array($result)) { $title1=$row['title']; $link1=$row['link']; ?>
|
|
} print_r($_POST); if(!empty($_POST)){ for($i=0;$i<$limit;$i++) { $title=$_POST["title"][$i]; $link=$_POST["link"][$i]; $id = $_POST["id"][$i]; $strSql = "UPDATE news SET title='".$title."' , link='".$link."' WHERE id='".$id."'"; $result2=mysql_query($strSql,$myconn); if(!$result2){ die(mysql_error()); }else{ //echo"修改成功!"; } } } ?>
我本地測試了一下,這樣是可以用的,以上是table裡的代碼
原來是這樣寫的,受教了
用 $objname=$_POST["objname"][$i]; 吧。
一下子沒想到這個,$_POST["objname"][$i]這樣的得到post的值,應該就可以插入了,問題應該可以解決了。
用 $objname=$_POST["objname"][$i]; 吧。
多謝大佬協助,基本上問題都解決了,還差一個定迴圈裡i的終止值為表單長度,這個我自己來吧
真是太感謝了!
用 $objname=$_POST["objname"][$i]; 吧。
一下子沒想到這個,$_POST["objname"][$i]這樣的得到post的值,應該就可以插入了,問題應該可以解決了。
也多些這位仁兄的熱心協助!太感動了
Edit
這裡是最終成型代碼
感謝fedcgfedbe和csjazqx的熱心協助!
用 $objname=$_POST["objname"][$i]; 吧。
多謝大佬協助,基本上問題都解決了,還差一個定迴圈裡i的終止值為表單長度,這個我自己來吧
真是太感謝了!
咱不是大佬。。做這行也沒多久的。只是在協助別人的時候自己也能溫習。