Pugnala nel buio:alcune delle righe del tuo database contengono caratteri non ASCII (ad es. ü, é e simili). La connessione al database è impostata su latin1
, quindi i dati non sono codificati in UTF-8. json_encode
richiede dati codificati UTF-8. Se recuperi abbastanza righe, ci saranno righe con tali dati non UTF-8 e json_encode
non riesce. Con poche righe sufficienti ti capita di non raggiungere quelle righe problematiche.
Provalo emettendo echo json_last_error_msg();
dopo json_encode
.
Imposta la connessione al database su UTF-8. Guarda qui come farlo:UTF-8 fino in fondo
Il motivo per cui il tuo browser si lamenta di JSON non valido quando includi un print_r
è semplice:perché quindi PHP emette molta spazzatura che non è JSON, che il browser non può decodificare come JSON.