Autor | Zpráva | ||
---|---|---|---|
Jan Žák Profil |
#1 · Zasláno: 6. 8. 2016, 15:12:10
Dobrý den všem,
chtěl bych Vás požádat o radu s tímto problémem, kde si nevím rady. Generuji kalendář a pomocí php a mysql si načtu eventy z db: <?php $query = "SELECT id, title, start, end, color FROM events"; $result = mysql_query($query) or die(mysql_error()); $events = mysql_fetch_array($result) or die(mysql_error()); ?> po té následuje php vložené v javascriptu: events: [ <?php foreach($events as $event): $start = explode(" ", $event['start']); $end = explode(" ", $event['end']); if($start[1] == '00:00:00'){ $start = $start[0]; }else{ $start = $event['start']; } if($end[1] == '00:00:00'){ $end = $end[0]; }else{ $end = $event['end']; } ?> { id: '<?php echo $event['id']; ?>', title: '<?php echo $event['title']; ?>', start: '<?php echo $start; ?>', end: '<?php echo $end; ?>', color: '<?php echo $event['color']; ?>', }, <?php endforeach; ?> ] toto vyhodí chyby: Illegal string offset 'start', Illegal string offset 'end', Undefined offset: 1, Illegal string offset 'id', Illegal string offset 'title', Illegal string offset 'color' Nevím si s tím rady, pomohl by někdo? Děkuji moc. Honza |
||
Fisir Profil |
#2 · Zasláno: 6. 8. 2016, 16:43:40
Reaguji na Jana Žáka:
Funkce mysql_fetch_array() vrací vždy data jednoho řádku. Musíš použít cyklus while , kde při každé jeho iteraci dostaneš další řádek:
events: [ <?php while($event = mysql_fetch_array($result)): $start = explode(" ", $event['start']); $end = explode(" ", $event['end']); if($start[1] == '00:00:00'){ $start = $start[0]; }else{ $start = $event['start']; } if($end[1] == '00:00:00'){ $end = $end[0]; }else{ $end = $event['end']; } ?> { id: '<?php echo $event['id']; ?>', title: '<?php echo $event['title']; ?>', start: '<?php echo $start; ?>', end: '<?php echo $end; ?>', color: '<?php echo $event['color']; ?>', }, <?php endwhile; ?> ] Dále připomínám, že funkce mysql_* jsou zastaralé a v PHP 7 už odstraněné.
|
||
Časová prodleva: 9 let
|
0