php
  • mysql
  • 2013-04-04 68 views 0 likes 
    0

    我發送多個輸入與表單,我怎樣才能得到實際輸入的id,所以我可以更新mysql內容?輸入的編號

    我的代碼:

    if (isset($_POST['save'])) 
        { 
        foreach ($_POST as $key => $value) 
         { 
         ${$key} = $value; 
         mysql_query("UPDATE table SET img='$image_[id]', title='$title_[id]' where id='$id'"); 
         } 
        } 
    
    while ($row = mysql_fetch_array($result)) 
        { 
        echo "<b>Title: </b><input type='text' name='title_" . $row['id'] . "' value='" . $row['title'] . "'><br />"; 
        echo "<b>Image: </b><input type='text' name='image_" . $row['id'] . "' value='"; 
        } 
    echo '<input type="submit" name="save" value="save"><br /><hr>'; 
    echo '</form>'; 
    
    +1

    [**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit 2013-04-04 01:03:59

    +0

    你可以請更具描述性。 – 2013-04-04 02:18:59

    回答

    0

    此致命名是錯誤的。使用這種方式。

    echo "... name='title[" . $row['id'] . "]'..."; 
    

    然後你的$_POST['title']將包含標題數組。

    而且閱讀說明書How do I create arrays in a HTML ?


    但是,如果你還在什麼走那條路。你可以使用這樣的東西。

    foreach ($_POST as $key => $value) 
        { 
        if (preg_match('^image_(\d*)$', $key, $matches)) 
         { 
         $id = $matches[1]; 
         if (isset($_POST['title_' . $id])) 
          { 
          mysql_query("UPDATE table SET title='" . $_POST['title_' . $id] . "' where id='$id'"); 
          } 
         } 
        } 
    

    但是在這裏簽到您瞭解此代碼的所有漏洞。

    +0

    我沒有問如何創建數組... – rabotalius 2013-04-04 09:31:19

    +0

    @rabotalius,看看更新答案。 – sectus 2013-04-04 09:44:45

    相關問題