У меня возникли проблемы с получением значения из запроса xmlhttp после отправки его с помощью ajax в php-файл и вставки его в базу данных mysql. Я получаю от yahoo finance api вывод, который вы можете увидеть в html-фрагменте. После этого значение этого элемента html должно быть отнесено к файлу insertvolume.php
.Декодировать многомерный массив и вставлять в mysql
После успешной отправки я сохраняю данные в переменной с именем $jsonString
и декодирует ее. Затем я пытаюсь вставить определенное значение из массива в мою базу данных mysql, но это не сработает. Я думаю, проблема заключается в том, что значение относится к любым другим массивам, но я не знаю, как это написать. Мне нужен только массив с именем results
Любые подсказки?
HTML-:
<div id="output">{"query{"count":1,"created":"20160215T09:15:04Z","lang":"deDE","results":{"quote":{"symbol":"ZN","Ask":"2.05","LastTradeRealtimeWithTime":null,"ChangePercentRealime":null,"ChangeFromYearHigh":"-0.45","LastTradeWithTime":"4:00pm<b>1.81</b>",astTradePriceOnly":"1.81", "Volume":"500","HighLimit":null,"LowLimit":null,"DaysRange":"1.781"}}}}</div>
JavaScript:
var outputt = $('#output').text();
$.ajax({
type: "POST",
dataType: "json",
url: "insertvolume.php",
data: {myData: outputt},
success: function(data){
//alert('Items added');
}
});
некоторые пайса кода из insertvolume PHP:
$jsonString = $_POST['mydata'];
$jsonArray = json_decode($jsonString, true);
$jsonArray1 = $jsonArray['query']['results']['quote'];
if ($stmt = $mysqli->prepare('INSERT INTO volume (stocksymbol, volume, time) VALUES (?, ?, now())')) {
/* bind parameters for markers */
$stmt->bind_param($jsonArray1['symbol'], $jsonArray1['volume']);
/* execute query */
$stmt->execute();
/* close statement */
$stmt->close();
}
Я не могу сказать, если что JSON не является действительным, или он получил перепутались, когда вы вставили его. Как есть, есть разрывы строки в нем, хотя. – Tomanow
Я сделал эти разрывы строк для лучшего чтения, но я могу их удалить. – Bodoppels
Является ли ваш html-вывод таким: '