在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”)插入到表中