在php mysql中插入数据
以下是我解决问题的完整代码,我将对此进行解释:在php mysql中插入数据,php,mysql,insert,Php,Mysql,Insert,以下是我解决问题的完整代码,我将对此进行解释: <form name="form1" action="" method="POST"> <table> <tr> <th>ORDER TYPE</th> <th>ITEM CODE</th> <th>ITEM NAME</th> <th>ACTION</th> </tr&g
<form name="form1" action="" method="POST">
<table>
<tr>
<th>ORDER TYPE</th>
<th>ITEM CODE</th>
<th>ITEM NAME</th>
<th>ACTION</th>
</tr>
<?php
$sql = "SELECT * FROM product";
$i = 1; //to generate an unique id and name attr
while($data = mysql_fetch_array($sql)){
$itemcode = $data['cars_kd'];
echo "<tr> <td><select name='select'><option>--Select--</option><option value='0'>Distributor</option><option value='1'>Retail</option>
<input id='id$i' name='name$i' /></select></td>
<td>$data['cars_kd']<input type='hidden' id='id$i' name='name$i' value='$itemcode'/></td>
<td>$data['cars_name']</td>
<td><input type='checkbox' name='check'/><input type='hidden' id='id$i' name='name$i'/></td> </tr> $i++";
}
?>
<input type="submit" name="save" value="Save" />
</table>
订单类型
项目代码
项目名称
行动
放置到action=”“
这样的脚本路径/php/script.php
并为打印变量$i值添加
**PHP**
<form action="/script.php" method="POST">
<input type="text" id="id<? echo $i; ?>" name="name<? echo $i; ?>" /><? echo $data['data'];?>
<input type="submit" name="submit" value="Save"/>
如果我理解你的问题,你可以这样尝试:
foreach( $_POST as $key => $val )
{
if( preg_match( '/^name(\d+)$/',$key,$matches ) )
{
$name = $val;
}
}
id号在$matched[1]
中捕获,因此-如果您想将其用作数组索引:
$name[$matches[1]] = $val;
编辑:
如果您知道name
postfields的确切数量,您也可以用另一种方式尝试。
假设字段总数为5:
for( $i=1; $i<6; $i++ )
{
$name = $_POST["name$i"];
}
用于($i=1;$i)
以行动的形式给予行动。现在它是空的
您需要为所有文本框指定名称name[]
而不是name$i
,这意味着:-
将$data['data'];
更改为$data['data'];
现在您将获得$\u POST['name']
数组中的所有名称
我假设您的表结构是(id,车名)
,您希望保存(1,沃尔沃)(2,杜卡蒂)
等数据。我还假设id
是自动递增的主键。现在您需要执行以下操作:-
$_POST['name'] = array('Volvo','Dukati','KTR','BMW');// now your POST array will look like this
$data = $_POST['name'];
$values = '';
foreach($data as $dat){
$values .= "(".$dat."),";
}
$values = trim($values,",");
$sql = "INSERT INTO <table name> ('car_name') VALUES '".$values."'";
echo $sql;
$\u POST['name']=array('Volvo','Dukati','KTR','BMW');//现在您的POST数组将如下所示
$data=$_POST['name'];
$values='';
foreach($dat数据){
$values.=”(“$dat.”),和“;
}
$values=修剪($values,“,”);
$sql=“插入('car_name')值”。$VALUES。“”;
echo$sql;
输出:-
注意:-这不是完整的代码,它只是一个示例,向您展示如何继续。谢谢
<?php
include('conect_to_db.php');
?>
<form name="form1" action="/a.php" method="POST"> <? /* action= the path + filename of script witch catch post data and work with it*/ ?>
<? for($i=0;$i<3;$i++) { ?>
<input type="text" id="id<? echo $i; ?>" name="name[]" value="<? echo $data ['data'];?>"\>
<?
}
?>
<input type="submit" name="submit" value="Save"/>
</form>
<?
if(isset($_POST['name'])) {
$data =$_POST['name'];
foreach($data as $value) {
/*may be like this to see you your darling name1,name2,name3, but you can do simply*/
if(!isset($name1)) $name1=mysql_real_escape_string($value); else
if(!isset($name2)) $name2=mysql_real_escape_string($value); else
if(!isset($name3)) $name3=mysql_real_escape_string($value); else
return;
}
$sql = "INSERT INTO table_namex (name1,name2,name3) VALUES (`$name1`,`$name2`,`$name3`)";
$res=mysql_query($sql);
echo 'result(1=good): '.$res.' \ query: '.$sql;
}
?>
对于前面提到的数组使用名=“name”,请考虑将输入名称更改为<代码>名称[]
name$i
不起作用,因为PHP只处理
标记中的代码,name$i
显然不起作用。您可以使用输入数组的名称作为第一个键,使用特定输入控件的索引作为第二个键(即$\u POST[“name”][0]),在$\u POST上获取输入数组的值我感谢在座的每一位得到答案的人:——)我已经试过这个了:$I=1$i@RezaM我已经试过了,对我来说效果很好。顺便说一句,其中一个答案是有效的,或者你现在已经找到了一个解决方案?我说谢谢这里的每个人,他们都得到了答案:-)我想这个:。和我的一样:$data['data'];因为我在php数组中创建了这个标记。但我的问题是,我的PHP代码无法将其作为$_POST[“name$i”]运行,即使我将其放入了@fusion3k suggest这样的数组中。希望另一个建议:-)A-2-A的例子很好。如果您不知道如何使用它,请关闭此网站,手拿一本关于PHP的书并阅读。你不需要$\u POST[“name$i”]
使用$\u POST[“name”]
并从一个数组中的表单中fet所有值name[]
,然后使用foreach
获得所有值,只要它是相同的$\u POST[“name”]=数组('Volvo','Dukati','KTR','BMW');使用$_POST['name']=数组($data['data'])?因为我从表中获取沃尔沃、宝马等,并用while(mysql\u fetch\u数组)显示它。在示例中,插入的值是(Volvo),(Dukati),(KTR),(BMW)
,但为什么需要数组呢?你把数据像字符串一样存储在数据库里?!展示你的桌子结构?!我想你有:id=1;汽车=沃尔沃;id=2;汽车=宝马。。。如果表scructure为:id=1,则不需要在同一行中插入car name;car1=宝马;car2=zaporojets。。。您需要通过插入表(id,car1,car2)
值(''bmw','zaporojets')来插入,我想在一个字段中插入。好的,我会更新我的代码。等一下,我说谢谢这里所有得到答案的人:—)+10到@a-2-a,因为我使用了他提供的一些代码!这是相同的$_POST['name']=array('Volvo','Dukati','KTR','BMW');使用$_POST['name']=数组($data['data'])代码>我命令,去做you@RezaM我想在一个字段中插入它
-当您插入时,需要是$value=$name1'、'.$name2'、'.$name3代码>例如,将名称(name)值(“$value”)插入到表中