| 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: 10 let
|
|||
0