2014-09-12 72 views
0

這裏是我的代碼:你會自動地理解它做什麼存儲值與循環

<form method="post"> 
    Enter Your Numbers 
    <input type="number" name="number" min="1" max="10" /> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

<?php 

if(isset($_POST['submit'])) 
{ 
    $number = $_POST['number']; 
    for ($x=0; $x<=$number; $x++) { 
     echo "<input type=\"text\" name=\"tbno".$x."\">"; 
    } 
    echo "<input type=\"submit\" value=\"submit\" name=\"submit1\">"; 
} 

if(isset($_POST['submit1'])) 
{ 
    $link = mysql_connect("localhost", "root", ""); 
    $db = mysql_select_db("bookabook"); 

} 
?> 

我的問題是:我想存儲在數據庫中的文本框的值,但我不知道該怎麼做這個。

if(isset($_POST['submit1'])) 
{ 
    $link = mysql_connect("localhost", "root", ""); 
    $db = mysql_select_db("bookabook"); 
    //WHAT SHOULD I WRITE HERE 
} 

有誰能告訴我嗎?

+1

所有的php語句都是從第一個代碼段依次調用,還是在它們之間發生了什麼?你的數據庫模式是什麼樣的?你收集的數據是什麼樣的?沒有您提供的代碼,我們無法真正幫助您。如果你可以給我們你的模式或sqlfiddle,那會很棒。 – 2014-09-12 14:49:31

+0

我只是想將文本框的值存儲在我的數據庫調用bookbookook中,並且名稱爲book_name – 2014-09-12 14:50:36

+1

該鏈接將幫助您一點點:http://www.w3schools.com/php/func_mysqli_query.asp – 2014-09-12 14:56:20

回答

0

創建插件(如下圖所示)語句而不是使用計數器$x - >name=\"tbno".$x."\" ,只需將您的輸入設置爲一個數組 - >name=\"tbno[]\"。然後在表單提交中,您可以使用foreachfor循環輕鬆地遍歷它們。

<?php 
if(isset($_POST['tbno'])) 
{ 
    //your db connection 
    foreach($_POST['tbno'] as $tbno){ 
      //INSERT INTO tbl VALUE $tbno 
    } 
    echo 'INSERTED DATA'; 
} 
?> 

<form method="post"> 
<?php 
if(isset($_POST['number'])) 
{ 
    $number = $_POST['number']; 
    for ($x=0; $x<$number; $x++) { 
     echo "<input type=\"text\" name=\"tbno[]\">"; 
    } 
} 
else 
{ ?> 
    Enter Your Numbers<input type="number" name="number" min="1" max="10" /> 
<?php 
} ?> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

我把你的2個表單壓縮爲1,作爲改變輸入的唯一的東西,所以代碼少了。

+0

兄弟我正在努力 – 2014-09-12 15:29:03

+0

肖恩兄弟我有任何聯繫人ID可以聯繫我嗎?像Facebook一樣? – 2014-09-12 15:33:09

+0

抱歉,不幸的是,我不會提供我的個人聯繫信息,尤其是在公共場所。如果您需要有關此問題的其他幫助,請發佈其他評論或更新您的問題。如果您需要其他問題/問題的幫助,請發佈問題鏈接。我很樂意提供幫助,但我更願意將它放在這裏。 – Sean 2014-09-12 16:29:51

-1

我認爲你要找的是一個插入語句。我不確定我是否理解這些代碼,但我理解這個目標。所有你需要做的是在for循環,通過書本循環等。

$number = trim($_POST['number']); 

$numberOfBooks = mysqli_real_escape_string($mysqlDatabseConnectionObject,$numberOfBooks); //variable to be inserted in the database 

$insertQuery = sprintf("INSERT INTO <table_name> VALUES('%s'",$numberOfBooks)); //statement to be executed 

$insertResults = $mysqlDatabseConnectionObject->query($insertQuery); //execute the query 

print_r($insertResults); //printing the query execution results 
+0

使用'mysqli'時,您應該使用參數化查詢和['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。你在這裏做的手動轉義和'sprintf'是一個巨大的黑客攻擊。 – tadman 2014-09-12 15:41:06

1
# HTML 
echo "<input type='text' name='tbno[]' value='$x'>"; 
# PHP 
$array = $_POST[tbno]; 
foreach ($array as $key => $value) { 
echo "$key = $value<br/>"; 
} 
+0

+1。有點麻煩,但是'$ array = $ _POST [tbno];'應該是'$ array = $ _POST ['tbno'];'應該引用字符串數組鍵以防止php說'PHP Notice:Use of undefined常數tbno - 假定'tbno'(第4行)'。 – Sean 2014-09-12 15:26:06

-1
if(isset($_POST['submit1'])) 
{ 
    $link = mysql_connect("localhost", "root", ""); 
    $db = mysql_select_db("bookabook"); 

    $values = ""; 
    foreach($_POST as $key => $inputValue){ 
     $values.="(".$inputValue."),"; 
    } 
    $SQL_string = "INSERT INTO mitabla(micampo) VALUES $values"; 
    mysql_query($SQL_string,$link); 
} 
+0

我認爲當你爲你的內涵添加一些解釋時,對於OP和更多的訪問者會更有幫助。 – reporter 2014-09-12 15:26:12

+0

由於巨大的[SQL注入漏洞](http://bobby-tables.com/)和缺乏[正確轉義](http://bobby-tables.com/php),這是非常糟糕的。 – tadman 2014-09-12 15:40:38