Bu kod, olayları FullCalendar içine besleyen ve this'dan biraz değiştirilen bir işlevin parçasıdır. Kodlama bilgim en iyisi en az ve birkaç gündür bu konuya girdim.PHP, MYSQL dizilerini birleştirerek mysqli_fetch_array
- My MYSQL veriler iki bölümden oluşuyor
- Ayrı TARİH ve SAAT
- Güncel işlevi yalnızca TARİH veya zaman damgası biçimine kabul
Çözüm:
- tarih ve saati birleştirin DATETIME
en MYSQL tablo varsayalım:
CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(11) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`sdate` date NOT NULL,
`stime` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`edate` date NOT NULL,
`etime` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
en işlevini varsayalım:
{
$events = array();
$query = mysqli_query($con, "SELECT * FROM test");
while($fetch = mysqli_fetch_array($query,MYSQLI_ASSOC))
{
$e = array();
$e['id'] = $fetch['id'];
$e['title'] = $fetch['title'];
$e['start'] = array_push($e,$fetch['sdate'],$fetch['stime']);
$e['end'] = array_push($e,$fetch['edate'],$fetch['etime']);
array_push($events, $e);
}
echo json_encode($events);
}
Sorun: '4' de
$e['start'] = array_push($e,$fetch['sdate'],$fetch['stime']);
$e['end'] = array_push($e,$fetch['edate'],$fetch['etime']);
Sonuçları olursa olsun giriş Ne veridir. Daha fazla dizi eklendiğinde, $ e değeri, veri bir dize olsa bile yalnızca 1 artar. Ben $ a + $ b veya array_combine gibi diğerlerini denedim çünkü Bana göre böyle instancess birden dizisini ayarlayarak, ilerleme geçerli:
$e['start'] = $fetch['sdate'];
$e['start'] = $fetch['stime'];
$e['end'] = $fetch['edate'];
$e['end'] = $fetch['etime'];
Ve hiçbiri çalıştık. İçinde bulunan dizilerin sayısından başka bir şeye neden olacak şekilde dizileri birleştirmek mümkün mü? Zaman ve okuma için hepinize çok teşekkür ederim. O
iki (tarih ve saati) bitiştirmek ve bunu geçerli bir tarih biçimini yapmak için PHP) '(function' tarihi kullanabilir: '$ e ['start'] = tarih ("Ymd H: i: s", strtotime ($ getirme ['sdate']. ''. $ getirme ['stime'])); –
Çözümünüz tam olarak doğru çalıştı! – ultracasual