Попробуйте принять JSON в базе данных, потому что у меня есть данные не исправлены. Я могу хорошо запросить из терминала, и нужно написать тот же запрос в PHP-скрипт. Я потратил много времени, прежде чем спросить. пример:
sqlite> select json_extract(events.interni, '$') from events WHERE id='35';
output
[{"student_id":"12","student_name":"Lisa Ochoa"},{"student_id":"21","student_name":"Rafael Royal"}]
где id = 35 станет переменной $ _POST ['id']
что я пробовал:
$result2 = $db->query("select json_extract(events.interni, '$') from events WHERE id='35'");
var_dump($result2->fetchAll(PDO::FETCH_ASSOC));
return [] <- empty array
i want instead = [{"student_id":"21","student_name":"Rafael Royal"}]
куда я пошелнеправильно?
Я следовал за этим ответом на SO https://stackoverflow.com/a/33433552/1273715, но мне нужно переместить запрос в php для вызова ajax
, возможно, другая помощь.
Можетрезультат вызова fron $ ajax может использоваться в качестве значения ключа или оставаться строкой? в других руках я могу преобразовать строку в объект, например ученики = новый объект ()?
как мне нужно в среде js - подсчитать объекты в массиве - и значение ключа цикла
var data = [{"student_id":"12","student_name":"Lisa Ochoa"},{"student_id":"21","student_name":"Rafael Royal"}]
consolle.log(JSON.Stringify(data));
здесь я хотел бы избежать обратной косой черты
consolle.log(JSON.Stringify(data.lenght));
in this phase the desired data is = 2
любая возможная помощь в значительной степени приветствуется
UPDATE
оставьте функцию json_extract () я решил вторую проблему, так что теперь я могу работать с нейСвойство объекта, и, наконец, важно подсчитать объекты в массиве:
<?php
try {
$db = new PDO('sqlite:eventi.sqlite3');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
echo "I'm sorry, Dave. I'm afraid I can't do that.";
echo $e->getMessage();
}
$risultato = $db->query("SELECT * FROM events WHERE id = '35'", PDO::FETCH_ASSOC);
$result = array();
foreach ($risultato as $row) {
$result[] = $row;
}
// echo "Results: ", json_encode($result), "\n"; this produced backslash
echo $result[0]['interni'];
?>
js part
var num='';
$.ajax({
url: "sqlitedb/test-con.php",
type: 'POST',
dataType: 'json',
success:function(result){
console.log(result[0].student_id+ " - "+ result[0].student_name); // output here is good: 12 - Lisa Ochoa
counter(Object.keys(result).length);
}});
function counter (numero){
console.log("num2: =" + numero);
}
//out put here: 2
perfect!
странное поведение:
console.log(result[0].student_id+ " - "+ result[0].student_name);
12 - Lisa Ochoa
выход верен, но
console.log(result.lenght);
output is null