0

我正在尝试将多个字段添加到同一个表中。当我回显 $url 时,我可以看到 url 值,但没有为所有 url 存储数据,它只是第一个 url。

例如,公司网站可以有多个 url。

foreach ($_POST['url'] as $url) {
   //$url = $_POST['url'];
    echo $url;
    $sql_insert_url="insert into url_table(url, company_name) 
          values ('$url', '$comp_name')";
}

我的html:

<div id="allurl">
        <div id="newurl">
            <label for="companyurl" >Company URL #1</label>
            <input type="text" name="url[]" id="url" maxlength="300" />
            <input type='button' value='Add' id='addurl' />
            </p>
        </div>

javascript:

  $(document).ready(function(){
    var counter=2;
    $("#addurl").click(function(){


        var n= $(document.createElement('div')).attr("id", 'newurl' + counter);

        n.after().html('<p><label>Company URL #' + counter + ' </label>' + '<input type="text" name="url[]" value="url' + counter + '" id="url' + counter + '" value="" />' + '<input type="button" name="remove'  +'" id="removeurl' +  '" value="Remove" /></p>');
        n.appendTo("#allurl");
        counter++;

    });

对此的任何帮助将不胜感激。另外,请推荐一些好的 php 编辑器,它可以帮助我快速找出 php 错误、内存泄漏等。

4

2 回答 2

0

INSERTVALUES允许关键字后面的多组值。此代码将所有 URL 组合成一个列表,如下所示:

$values = implode(',', array_map(function($x) use ($comp_name) {
    return "('" . mysql_real_escape_string($x) . "', '$comp_name')"; },
  $_POST['url']));
$sql_insert_url = "insert into url_table(url, company_name) values $values";
于 2013-06-25T19:54:33.647 回答
0

我在这里找到了答案: 在 mySQL 数据库中插入多个数组值

so all i needed to do is 
    $sql = "insert into win_url(url, company) values";
        foreach ($_POST['url'] as $url) {
         $sql .=  "('".$url."','" . $comp_name. "'),";

           }

     $sql = substr($sql, 0, -1); // remove trailing comma
      mysql_query($sql);

that's it.. magic... it works. thanks to me. i'm the best.
于 2013-06-26T06:18:33.613 回答