Bodnutí do tmy:některé řádky vaší databáze obsahují znaky jiné než ASCII (např. ü, é a podobně). Vaše připojení k databázi je nastaveno na latin1
, takže data nejsou kódována UTF-8. json_encode
vyžaduje data v kódování UTF-8. Pokud načtete dostatek řádků, budou tam řádky s daty mimo UTF-8 a json_encode
selže. S malým počtem řádků se stane, že se do těchto problematických řádků nedostanete.
Otestujte to zadáním echo json_last_error_msg();
za json_encode
.
Nastavte připojení k databázi na UTF-8. Podívejte se, jak na to:UTF-8 až do konce
Důvod, proč si váš prohlížeč stěžuje na neplatný JSON, když zahrnete print_r
je jednoduchý:protože pak PHP generuje spoustu odpadků, které nejsou JSON, které prohlížeč nemůže dekódovat jako JSON.