Канал JSON из MySQL работает, но не более чем с x записями - PullRequest
1 голос
/ 15 апреля 2011

Я пытаюсь заставить FullCalendar работать с моей базой данных MySQL. Это работает, когда я ограничиваю свой запрос 25 записями. Когда я изменю свой sql-запрос на ограничение, скажем, 35 ​​записей, Fullcalendar не добавит ни одного события и в основном продолжает загружаться.

Я проверил с помощью firebug, каков был ответ JSON, и в обоих случаях он завершен.

Сначала я подумал, что проблема в SQL-запросе. Длина базы данных более 5000 записей, но ответ JSON загружается менее чем за 200 мс

Я использую демонстрационный файл json.html для тестирования. разместит функцию здесь:

<script type='text/javascript'>
$(document).ready(function() {
    $('#calendar').fullCalendar({
        editable: true,
        events: "json-events.php",
        eventDrop: function(event, delta) {
            alert(event.title + ' was moved ' + delta + ' days\n' +
                '(should probably update your database)');
        },

        loading: function(bool) {
            if (bool) $('#loading').show();
            else $('#loading').hide();
        }
    });
});
</script>

Это мой json-events.php

<?php
    $conn = mysql_connect("") or die ("Unable to connect to MySQL server.");

    $Exec = mysql_query("select Brand, date_in from planning ORDER BY date_in Desc Limit 35",$conn) or die(mysql_error());
    mysql_close();

    $events = array();

    while($row = mysql_fetch_assoc($Exec)) {
        $eventArray['title'] = $row['Brand'];
        $eventArray['start'] = $row['date_in'];
        $eventsArray['allDay'] = "";
        $events[] = $eventArray;
    }

    header('Content-type: application/json');

    echo json_encode($events);
?>

Это ответ JSON:

[{"title": "Volkswagen Passat", "start": "2011-04-28"}, {"title": "Seat Alhambra", "start": "2011-04-28"}, {"title": "Ford Focus", "start": "2011-04-20"}, {"title": "BMW 5-Serie", "start": "2011-04-20"}, {" title ":" Ford Mondeo "," start ":" 2011-04-20 "}, {" title ":" Volkswagen Caddy "," start ":" 2011-04-20 "}, {" title ":" Opel Zafira "," start ":" 2011-04-18 "}, {" title ":" Mazda 3 "," start ":" 2011-04-14 "}, {" title ":" Opel Vectra ", "start": "2011-04-14"}, {"title": "Peugeot 207", "start": "2011-04-14"}, {"title": "Volkswagen Golf", "start": "2011-04-14"}, {"title": "Volvo V90", "start": "2011-04-14"}, {"title": "Volvo V50", "start": "2011-04 -14 "}, {" title ":" Volkswagen Polo "," start ":" 2011-04-14 "}, {" title ":" Volkswagen Golf "," start ":" 2011-04-14 "} , {"title": "Ford Mondeo", "start": "2011-04-14"}, {"title": "Audi", "start": "2011-04-14"}, {"title" : "BMW 525i", "start": "2011-04-14"}, {"title": "Renault Laguna", "start": "2011-04-14"}, {"title": "Opel Astra "," start ":" 2011-04-14 "}, {" title ":" Seat Alambhra "," start ":" 2011-04-14 "}, {" title ":" Peugeot 307 "," sta rt ":" 2011-04-13 "}, {" title ":" Hyundai Atos "," start ":" 2011-04-13 "}, {" title ":" Citroen Xsara Picasso "," start ": "2011-04-13"}, {"title": "Opel Astra", "start": "2011-04-13"}, {"title": "Volkswagen Golf", "start": "2011-04 -13 "}, {" title ":" Peugeot 307 "," start ":" 2011-04-13 "}, {" title ":" Volkswagen Passat "," start ":" 2011-04-13 "} , {"title": null, "start": "2011-04-13"}, {"title": "Citroen C1", "start": "2011-04-13"}, {"title": " Toyota Camry "," start ":" 2011-04-13 "}, {" title ":" Toyota Aygo "," start ":" 2011-04-13 "}, {" title ":" Nissan Qashqai ", "start": "2011-04-13"}, {"title": "BMW 3 touring", "start": "2011-04-12"}, {"title": "Toyota Prius", "start" : "2011-04-12"}]

Я перепробовал все, что мог придумать, я потратил 5 часов, пытаясь заставить это работать.

Есть ли кто-нибудь, кто знает, как заставить это работать?

Ответы [ 2 ]

5 голосов
/ 15 апреля 2011

Похоже, ошибка в вашей базе данных.

В вашем фиде JSON есть запись, которая

{"title":null,"start":"2011-04-13"}

Вероятно, именно этот ноль удерживает вас.

0 голосов
/ 18 апреля 2011

Я думаю, что я нашел часть проблемы, специальные символы в имени появляются как NULLS в выводе JSON, такие как Renault Mégane. поэтому я изменил кодировку на:

<meta http-equiv="Content-Type" content="text/html; charset="Latin-1"></meta>

Я также изменил JSON и добавил:

mysql_set_charset("utf8");

Есть еще небольшие проблемы, но это работает! спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...