Steek in het duister:sommige van uw databaserijen bevatten niet-ASCII-tekens (bijv. ü, é en dergelijke). Uw databaseverbinding is ingesteld op latin1 , dus de gegevens zijn niet UTF-8-gecodeerd. json_encode vereist UTF-8-gecodeerde gegevens. Als u genoeg rijen ophaalt, zullen er rijen zijn met dergelijke niet-UTF-8-gegevens en json_encode mislukt. Met weinig rijen raak je die problematische rijen niet.
Test dit door echo json_last_error_msg(); . uit te voeren na json_encode .
Stel uw databaseverbinding in op UTF-8. Kijk hier hoe u dit doet:UTF-8 helemaal
De reden waarom uw browser klaagt over ongeldige JSON wanneer u een print_r . opneemt is eenvoudig:omdat PHP dan veel rommel produceert die geen JSON is, die de browser niet als JSON kan decoderen.