Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 25

Discussione: Limite creazione json

  1. #11
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34
    Tranquillo.
    Cambia questo header("Content-Type: application/json; charset=UTF-8"); in header("Content-Type: text/plain; charset=UTF-8");

  2. #12
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34
    Quindi lo script senza alcun echo non produce output, dobbiamo riscrivere i probabili errori e comunque creare una risposta json valida poiché il testo non è un json valido. (Sto pensando ad un problema di Output Control (buffer php per la funzione fetch_all se fosse vero è un bug php)).
    Hai controllato se ti crea il file json senza alcun problema?
    In quella select che non prevede valore dinamici non devi utilizzare i Prepared Statements https://dev.mysql.com/doc/apis-php/e...0and%20execute.
    Comunque per bind_param le s indicano stringa e ne devo mettere quante sono le occorrenze per ogni occorrenza di una colonna o un valore ma la sintassi te la prepara la funzione prepare dove dovrai usare i placeholders il carattere punto interrogativo se valore o doppio punto interrogativo se colonna.
    https://www.php.net/manual/en/mysqli...statements.php
    Ultima modifica di darbula; 01-09-2020 a 22:12

  3. #13
    Quote Originariamente inviata da darbula Visualizza il messaggio
    Tranquillo.
    Cambia questo header("Content-Type: application/json; charset=UTF-8"); in header("Content-Type: text/plain; charset=UTF-8");
    Pur cambiando questo, non cambia il tipo di errore, sembra come se ci fosse un limite imposto, non va oltre 10000

    Non riesce a produrre nemmeno il file

  4. #14
    Troppo strano
    La cosa strana è che ,anche modificando header , se ho 10000 funziona, ma se aggiungo 1000000 pagina bianca

    Codice PHP:
    header("Content-Type: text/plain; charset=UTF-8");
    $obj = json_decode($_GET["x"], false);

    $conn = new mysqli("localhost", "root", "", "test");
    $conn->set_charset("utf8");
    $stmt = $conn->prepare("SELECT `dataOrdine`, nOrdine, `ImportoOrdine`, `importoWeb`, `documentoWeb`, `dataWeb`, `daRendere`, `piattaforma`, `tipoPagamento`, dataRimborso, importoRimborso, eshop, riferimento,ndocWeb, corriere FROM report_crediti WHERE (stato='Spedito' OR stato='Completato' OR stato='Ritirato') ORDER BY dataOrdine DESC LIMIT 1000000");
    $stmt->bind_param("iiiiiiiiiiiii",$obj->table);
    $stmt->execute();
    $result = $stmt->get_result();
    $outp = $result->fetch_all(MYSQLI_ASSOC);

    echo
    json_encode($outp);
    //echo json_encode($user);
    $json_data = json_encode($outp);
    file_put_contents('../app-assets/data/ordini_def3.json', $json_data);


    Mentre l'altro script stessa cosa pagina bianca :



    Codice PHP:

    error_reporting(-1);

    header("Content-Type: text/plain; charset=UTF-8");
    $obj = json_decode($_GET["x"], false);

    $conn = new mysqli("localhost", "root", "", "test");
    $conn->set_charset("utf8");
    if((
    $result = $conn->query("SELECT dataOrdine, nOrdine, ImportoOrdine, importoWeb, documentoWeb, dataWeb, daRendere, piattaforma, tipoPagamento, dataRimborso, importoRimborso, eshop, riferimento, ndocWeb, corriere
    FROM report_crediti WHERE (stato='Spedito' OR stato='Completato' OR stato='Ritirato') ORDER BY dataOrdine"
    )) !== false) {
    if(
    is_array(($outp = $result->fetch_all(MYSQLI_ASSOC)))) {


    $json_data = json_encode($outp);
    file_put_contents('ordini_def.json', $json_data);
    } else {
    echo
    'not array';
    }
    } else {
    printf("Error message: %s\n", $conn->error);
    Ultima modifica di Werwolfe; 02-09-2020 a 00:18

  5. #15
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34
    La pagina bianca perché ti sembra un errore? Stai forse stampando qualcosa su schermo? Con il mio codice no e quindi funziona tutto perfettamente anzi se leggi qualcosa dovrebbe essere l'errore della query o fetch_all non è un array questo si che indica un errore.
    Una risposta json non può essere vuota o del semplice testo ma bensì un'oggetto json.
    Il file json dalla funzione file_put_contents viene creato ed è un'oggetto json valido? (Leggi il file con il tuo browser e dovrebbe dirtelo).
    Non devi usare i Prepared Statements lì è senza.

  6. #16
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,035
    Quote Originariamente inviata da Werwolfe Visualizza il messaggio
    Fatto, ho copiato il tuo script pari pari , a video o solo quell'errore, se vado nella console nessun errore.
    Per ottenere quell'errore nella console devi stampare la stringa che JS recupera dalla chiamata al server con un console.log(variabile_contenente_la_stringa), non viene stampato automaticamente perché non è un errore di Javascript.
    Ultima modifica di Alhazred; 02-09-2020 a 09:25

  7. #17
    Fatto, non da nessun errore boh


    Codice PHP:
    error_reporting(-1);

    header("Content-Type: text/plain; charset=UTF-8");
    $obj json_decode($_GET["x"], false);

    $conn = new mysqli("localhost""root""""test");
    $conn->set_charset("utf8");
    if((
    $result $conn->query("SELECT dataOrdine, nOrdine, ImportoOrdine, importoWeb, documentoWeb, dataWeb, daRendere, piattaforma, tipoPagamento, dataRimborso, importoRimborso, eshop, riferimento, ndocWeb, corriere
    FROM report_crediti WHERE stato='Spedito' OR stato='Completato' OR stato='Ritirato' ORDER BY dataOrdine"
    )) !== false) {
    if(
    is_array(($outp $result->fetch_all(MYSQLI_ASSOC)))) {


    echo 
    $json_data json_encode($outp);
    file_put_contents('ordini_def.json'$json_data);
    echo 
    0;
    } else {
    echo 
    'not array';
    }
    } else {
    printf("Error message: %s\n"$conn->error);

    Ho provato la query e funziona, non riesco a capire.
    Cqm Grazie sempre per il supporto, ma come posso risolvere?

  8. #18
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34
    Sostituisci con questo.
    header("Content-Type: application/json; charset=UTF-8");
    Beh se lato server funziona probabilmente non viene creato un file json valido per questo motivo se lo stampi il browser ti segnala l'errore.
    Discorso diverso se apri il file json ordini_def.json generato in un altro scrip php comprensivo di header e il browser non segnala errore... fai questo test e poi semmai il problema sarà il buffer php.
    Ultima modifica di darbula; 02-09-2020 a 11:24

  9. #19
    Quote Originariamente inviata da darbula Visualizza il messaggio
    Sostituisci con questo.
    header("Content-Type: application/json; charset=UTF-8");
    Beh se lato server funziona probabilmente non viene creato un file json valido per questo motivo se lo stampi il browser ti segnala l'errore.
    Discorso diverso se apri il file json ordini_def.json generato in un altro scrip php comprensivo di header e il browser non segnala errore... fai questo test e poi semmai il problema sarà il buffer php.

    Allora ho messo:
    echo error_reporting(-1);
    e mi esce 22519 e basta. Ho sostituito anche header, e ho di nuovo errore della sintassi errata del json, che invece si toglie se metto alla query il limite 10000 , funzionando perfettamente

  10. #20
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,035
    Sì, ma a questo punto devi anche mostrare il codice JS che usi per inviare la richiesta e recuperare la risposta del server, in modo da capire meglio come eseguire il debug.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.