2015-06-09 18 views
0

我使用AJAX將值數組發送到PHP頁面,該頁面將數據插入MySQL數據庫。問題是我不知道如何將數據分成5個不同的可執行文件並循環插入到數據庫中。PHP分割字符串並在MySQL中插入

AJAX請求: 陣列:

[".testimonial", 1119, 316, 1663, 608, "#header", 723, 66, 1663, 608] 

發佈陣列:使用

發送數組參數 「;」 分裂。發送

clicks 
.testimonial;1119;316;1663;608;#header;723;66;1663;608 

來源:

clicks=.testimonial%3B1119%3B316%3B1663%3B608%3B%23header%3B723%3B66%3B1663%3B608 

PHP頁面

<?php 

$clicks = $_GET["clicks"]; 
$clickArray = explode(";",$clicks); 
$arrays = array_chunk($clickArray, 5); 

foreach ($arrays as $array_num => $array) { 
    foreach ($array as $item_num => $item) { 
    echo "". $item . "<br/>"; 
    } 
} 


$servername = "localhost"; 
$username = "root"; 
$password = "password"; 
$dbname = "clickmap"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 


$sql = "INSERT INTO data (user_id, identifier_name, pos_x, pos_y, window_width, window_height, status) 
VALUES ('1', '$postIdentifier', '$postPos_x', '$postPos_y','$postWindowWidth','$postWindowHeight', 'ok')"; 


if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 

?> 

當前PHP結果:

.testimonial 
1119 
316 
1663 
608 
#header 
723 
66 
1663 
608 
New record created successfully 
+0

什麼?你爲什麼不直接發送JSON?並且使用JSON數組中的鍵名來簡化PHP端。 – AbraCadaver

+0

您在查詢中使用的變量都沒有被定義。所以你插入空字符串。然後沒有任何你的json /數組操作的東西在查詢中被使用,所以它都是無用的/無意義的代碼。 –

+0

@AbraCadaver現在我將嘗試使用JSON。出於某種原因,我不認爲它會起作用。 Marc B問題是如何在分割字符串並進行循環時定義它們。您的評論比代碼更無用/毫無意義。 – Raddy

回答

0

這應該工作,但使用extract通常不推薦,因爲它可以輕鬆y導致難以調試的錯誤。

$keys = array('postIdentifier', 'postPos_x', 'postPos_y','postWindowWidth','postWindowHeight'); 

foreach ($arrays as $array_num => $array) { 
    $values = array(); 
    foreach ($array as $item_num => $item) { 
    $values[] = $item; 
    } 
    $data = array_combine($keys, $values); 
    extract($data); // now your variables are declared with the right values http://php.net/manual/en/function.extract.php 

    // .. run SQL insert here 
}