2017-06-14 14 views
0

我想從這個簡單的html網格數據推入sql,但我不能這樣做。在一開始,我得到了var var impressions沒有索引的錯誤。我修正了這一點。當我只使用廣告客戶價值時,我可以將數據推送到MySQL,而使用第二個值時,我無法成功。你能解釋我做錯了什麼嗎? 在此先感謝如何將數據從html網格推送到mysql?

<?php 

    include_once 'con_ui.php'; 
    if(isset($_POST['btn-save'])) 
     { 

    $advertiser = $_POST["advertiser"]; 
    $impressions = (isset($POST["impressions"])? 
    $_POST["impressions"]:''); 



      $sql_query = "INSERT INTO data(adv, imp) VALUES('$advertiser', '$impressions')"; 
    mysql_query($sql_query); 

      // sql query for inserting data into database 

    } 
    ?> 


    <html> 
    <head> 
    </head> 
    <body> 
    <form method="post"> 
    <table id="myTable" align='center' cellspacing=0 cellpadding=5 border=1> 

    <tr> 
    <th>advertiser</th> 
    <th>impressions</th> 
    </tr> 
    <td> 

    <select name="advertiser" id="advertiser"> 
       <option value="">Select advertiser</option> 
       <option value = "Brita ">Brita</option> 
       <option value = "Sammontana">Sammontana</option> 
     </select> 

    </td> 

    <td name= "impressions" id="impressions" >1000000</td> 

    <td> 
     <button type="submit" name="btn-save"><strong>SAVE</strong></button> 
    </td> 
    </form> 
    </body> 
    </html> 
+0

僅供參考,[你不應該在新代碼中使用'mysql_ *'函數](http://stackoverflow.com/questions/12859942/)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[紅盒](http://php.net/manual/en/function.mysql-connect.php)?學習[*準備的語句*](https://en.wikipedia.org/wiki/Prepared_statement),並使用[PDO](http://php.net/pdo)或[MySQLi](http:// php.net/mysqli) - [這篇文章](http://php.net/manual/en/mysqlinfo.api.choosing.php)將幫助你決定哪一個最適合你。 –

+0

你的腳本存在[SQL注入攻擊]的風險(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)看看發生了什麼事[Little鮑比表](http://bobby-tables.com/)即使[如果你逃避投入,它不安全!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around -mysql-real-escape-string)使用[prepared parameterized statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)。 –

+1

你不知道什麼是錯的,因爲你不檢查代碼中的錯誤。永遠不要假設代碼總是完美無缺地工作。 –

回答

0

錯在這裏有幾件事情:

首先在$ POST在

$impressions = (isset($POST["impressions"])?$_POST["impressions"]:''); 

缺少下劃線,應該是$ _ POST

$impressions = (isset($_POST["impressions"])?$_POST["impressions"]:''); 

其次瀏覽器不會識別

<td name= "impressions" id="impressions" >1000000</td> 

作爲表單字段。如果您想傳遞用戶無法編輯的值,則有幾個選項。您可以使用隱藏字段,如:

<td><input type="hidden" name="impressions" id="impressions" value="1000000">1000000</td> 

,或者您可以使用文本輸入並禁止用戶輸入像

<td><input type="text" name="impressions" id="impressions" value="1000000" disabled></td> 
+0

嘿,謝謝你的回覆。問題在於我需要讓用戶在單元格中輸入日期,並且應該可以編輯內容。另外我有一個按鈕添加行,插入一個新的原料,但不工作,如果使用表單類型作爲輸入。會發布完整的代碼作爲我自己的回覆 –

+0

在這種情況下,使用第二個字段並取出禁用的屬性。如果你想手動插入行,你實際上可以將輸入類型設置爲一個數組。所以name =「advertiser []」或name =「impressions []」,那麼當你在後端解析時,你可以做一個foreach。(順便提一下,如果只提交了一行,瀏覽器會將其作爲文本發送,而不是作爲數組發送,因此您需要檢查兩者的代碼) https://johnrockefeller.net/html- input-forms-sending-in-an-array-in-php/ – Jake

+0

感謝您的回覆。如果我去第二個選項刪除禁用的屬性,單元格是一個窗體,輸入的最後一個值不是「存儲」在網格中,我需要顯示該值。此外,與添加行按鈕關聯的函數不會工作(可能是我的錯誤,我要重新檢查代碼)。再次感謝,對不起,如果我要求平庸的問題 –

0

在這裏你有,我使用,以實現加入代碼的細節原料自動,讓用戶輸入數據並保持代碼可編輯

嘿,謝謝你的回覆。問題在於我需要讓用戶在單元格中輸入日期,並且應該可以編輯內容。另外我有一個按鈕添加行,插入一個新的原料,但不工作,如果使用表單類型作爲輸入。在這裏你有完整的代碼

<?php 
include_once 'con_ui.php'; 
if(isset($_POST['btn-save'])) 
{ 
// variables for input data 
$advertiser = $_POST["advertiser"]; 
$impressions = (isset($_POST["impressions"])? 
    $_POST["impressions"]:''); 

// variables for input data 

// sql query for inserting data into database 

     $sql_query = "INSERT INTO data(adv, imp) VALUES('$advertiser', '$impressions')"; 
mysql_query($sql_query); 

     // sql query for inserting data into database 

} 
?> 


<html> 
<head> 
<script> 
function myFunction() { 
    var table = document.getElementById("myTable"); 
    var new_client = document.getElementById("advertiser_row1").innerHTML; 
    var new_impressions = document.getElementById("impressions_row1").innerHTML; 

    var row = table.insertRow(1); 
    var cell1 = row.insertCell(0); 
    var cell2 = row.insertCell(1); 
} 
    </script> 
</head> 
<body> 

<table id="myTable" align='center' cellspacing=0 cellpadding=5 border=1> 
<form method="post"> 
<tr> 
<th>advertiser</th> 
<th>impressions</th> 
</tr> 
<td> 

<select name="advertiser" id="advertiser_row1"> 
      <option value="">Select advertiser</option> 
      <option value = "Brita ">Brita</option> 
      <option value = "Sammontana">Sammontana</option> 
    </select> 

</td> 

<td><input type="text" name="impressions" id="impressions_row1" value="1000000"></td> 


<td> 
<button onclick="myFunction()">Add Row</button> 
</td> 
<td> 
<button type="submit" name="btn-save">Save</button> 
</td> 
</tr> 
</form> 
</table> 

</body> 
</html> 
相關問題