2015-09-25 46 views
1

我有這段代碼插入一些來自一段時間,在數據庫中的數據。我試圖將jQuery serializearray和jQuery一起使用。但似乎我做了一些錯誤jQuery序列化並插入到mysql

$query= "SELECT * FROM barcode_prodotti"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row=mysql_fetch_array($result)){ 
echo' 
    <input type="text" name="prodotto[]" class="prodotto" value="'.$row["prodotto"].'"></div> 
    <input type="text" name="prezzo[]" class="price" value="'.$row["prezzo"].'"> 
    <input type="text" name="quantita[]" class="price" value="'.$row["quantita"].'">'; 
    } 
    ?> 
    <script src="js/mine.js"></script> 
    <button>Serialize form values</button> 
    </form> 
    <div id="results"></div> 

這是我的jQuery代碼我把mine.js

$(document).ready(function(){ 
$('form').submit(function(msg) { 
var mia =$(this).serialize(); 
$('#results').text(mia) 
alert($(this).serialize()); // check to show that all form data is being submitted 
$.post("testtest.php",$(this).serializeArray(),function(data){ 
    alert(data);      
}); 
return false; }); 
}); 

這是我的PHP文件(testtest.php)

mysql_connect("localhost","root",""); 
mysql_select_db("db"); 


$arr = $_POST; 

$sql="INSERT INTO table VALUES(
    '".$arr['prodotto']."', 
    '".$arr['quantita']."', 
    '".$arr['prezzo']."' 
)"; 

$rssql = mysql_query($sql); 
?> 

所以我序列化是好的(我試圖分配一個值,看看它是否可以),但我不能在我的分貝值插入

+0

除了使用_deprecated_ mysql函數和你的代碼傾向於SQL注入,你會得到什麼確切的錯誤或意外的結果? – user5173426

+0

數據prodotto,prezzo和quantita不會進入名爲表 – piccolopasticcio

+0

的mysql表是否嘗試'echo $ arr ['prodotto'];'並且看到你在插入之前得到了什麼? – user5173426

回答

1

您的INSERT查詢在變量替換後最終看起來像這樣。

INSERT INTO table VALUES('product', '123', '321') 

如果您的table正好有三列,這將工作正常。否則它會失敗。您可能希望改爲使用此查詢。

INSERT INTO table (prodotto, prezzo, quantita) VALUES('product', '123', '321') 

它枚舉你想要你的數據的列。

執行插入操作(以及任何查詢後)後,應檢查是否有錯誤。這可以用這樣的代碼來完成。

$res = mysql_query($q); 
if ($res === false) { 
    echo $mysql_error(); 
} 

注意哦:mysql_xxx()接口被從PHP中刪除,一個很好的理由:它很容易受到網絡罪犯。請儘快採用mysqli_xxx()PDO

1

做到這一點,最簡單的方法:

<form id="myform" method="post"> 
<input type="text" name="prodotto" id="prodotto"> 
<input type="text" name="prezzo" id="prezzo"> 
<input type="text" name="quantita" id="quantita"> 
</form> 

jQuery是很簡單太:

yourfile.php:

var datastring = $("#myform").serialize(); 

$.ajax({ 
type: 'POST', 
url: 'url/to/yourfile.php', 
data: datastring 
}).done(function(res){ 
var res = $.trim(res); //the ajax response. you can alert it or whatever... 
}); 

您可以在AJAX文件這樣解析領域

<?php 
$product = mysql_real_escape_string($_POST["prodotto"]); 
$prezzo = mysql_real_escape_string($_POST["prezzo"]); 
$quantity = mysql_real_escape_string($_POST["quantita"]); 

//here you have the variables ready to add them as values to database 
$ins = "INSERT INTO table (prodotto, prezzo, quantita) VALUES('product', '123', '321')"; 
mysql_query($ins); 

?>