Я хочу добиться следующего с двумя переменными.
[ new Date(2018, 3, 13), 30032 ],
[ new Date(2018, 3, 14), 38024 ],
[ new Date(2018, 3, 15), 38024 ],
[ new Date(2018, 3, 16), 38108 ],
[ new Date(2018, 3, 17), 38229 ]
Для этого я сделал
$query = "SELECT * FROM agendapunten";
$data_ophalen = mysqli_query($connection,$query);
while ($row = mysqli_fetch_assoc($data_ophalen)) {
$agenda_datum = $row ['datum'];
$agenda_personen = $row ['personen'];
$agenda_datum = strtotime($agenda_datum);
$agenda_datum = date('Y, m, d', $agenda_datum);
$data = ($agenda_datum[$agenda_personen]);
echo "[new Date = ' . $data '];'";
}
?>
]);
Последняя часть должна генерировать строки, как указано выше. Как-то я не могу это исправить. Вы можете помочь? Вам нужно больше информации?
Я мог напортачить и на 100% уверен, что смогу сделать свой код более приятным. Также я хорошо осведомлен о возможных возможностях SQL-инъекций. Как уже было сказано, я надеюсь получить ответ о том, как я могу исправить это.
Обновлено: Я использую следующую диаграмму: https://developers.google.com/chart/interactive/docs/gallery/calendar
Что вы думаете, что $agenda_datum[$agenda_personen] даст вам (зная, что $agenda_datum - это свидание)?
@ChrisG, спасибо! Я посмотрю на это завтра. Не ожидал такого быстрого ответа.
@trincot он должен дать мне количество людей, которые есть в базе данных. Но теперь, когда я смотрю на это снова, я думаю, что это делает его похожим на массив, я прав? Я действительно не знаю, откуда я это взял, думаю, уже поздно. Спасибо!
@ChrisG См. Здесь данные таблицы. Единственные данные, которые я хочу показать, - это 'datum' и 'personen': ID - title - scheme_cat_id - datum - datum_tot - personen - opmerkingen - locatie 42 - Verjaardag - 1 - 03.03.2019 - 03.03.2019 - 5 - 31 - 1 43 - Testje - 5 - 2018-06-21 - 2018-06-19 - 5 - 3 - 1 44 - Oude afspraak - 8 - 1949-03-02 - 1949-03-03 - 2-5 - 1
@ Sjonniej87 Используйте это: pastebin.com/Pxmgw3EQ
@ChrisG как это? pastebin.com/2N6tCsZ2
@ Sjonniej87 Что ты имеешь в виду? Вы не видели код PHP, который я вам дал? Исходная версия: pastebin.com/raw/Pxmgw3EQ
@ChrisG, спасибо за уделенное время! Во время проверки я нашел кое-что, что дало мне полное решение: см. pastebin.com/0KEsAauT. Тем не менее, спасибо за помощь и ваш вклад! :)
@ Sjonniej87 Уродливо, но пока это работает ... кстати, опять же, вам не нужно разделять дату. JS легко может делать new Date("2018-03-03"). И, пожалуйста, загляните в json_encode. Я не понимаю, почему вы игнорируете гораздо более короткий, более элегантный и менее подверженный ошибкам способ, который я предложил.
@ChrisG Я, конечно, не игнорирую вас. Это просто дало мне быстрое решение. Поскольку я уже сказал, что все еще учусь, я буду копаться в ваших комментариях и узнавать больше о JS и json_encode. Тем не менее, спасибо. На данный момент это дало мне быструю победу, но я надеюсь начать с JS в течение 1-2 месяцев, чтобы копнуть глубже и получить больше знаний. Спасибо за попытку
Пожалуйста. По-прежнему. Я бы посоветовал вам взглянуть на вывод echo json_encode($rows, JSON_UNESCAPED_UNICODE | JSON_NUMERIC_CHECK);, который полностью заменит ваш цикл foreach (и удалите запятую в конце, из-за которой IE отключается)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Не составляйте JSON, используйте
json_encode. У вас есть точка с запятой и три одинарные кавычки между двумя двойными кавычками, именно таких ошибок можно избежать. Я бы рекомендовал поместить данные таблицы как есть в массив, закодировать их с помощью приведенной выше команды и позволить JS создавать даты на основе данных. Мы можем помочь вам в этом, если вы покажете нам фактические данные таблицы.