Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: Limite creazione json

Hybrid View

  1. #1

    Limite creazione json

    Salve ragazzi, ho fatto uno script che funziona perfettamente, l'unica cosa che non capisco, è perchè ha un limite, mi spiego meglio, ho dovuto impostare la query a limite di 10000 , altrimenti mi da un errore di parsen.
    Lo script è questo, se mi potete aiutare a capire come poter sbloccare il limite, intanto vi ringrazio in anticipo

    Codice PHP:
    header("Content-Type: application/json; 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`, dataRimborsoimportoRimborsoeshopriferimento,ndocWebcorriere  FROM report_crediti WHERE (stato='Spedito' OR stato='Completato' OR stato='Ritirato'ORDER BY dataOrdine DESC LIMIT 100000");
    $stmt->bind_param("ssssss",$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_def.json', 
    $json_data); 

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,036
    Cosa vuol dire "errore di parsen"?
    Riporta l'errore così come ti viene indicato, fa copia/incolla di tutto quello che dice.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Cosa vuol dire "errore di parsen"?
    Riporta l'errore così come ti viene indicato, fa copia/incolla di tutto quello che dice.
    Prima di tutto grazie per avermi risposto.

    Allora ho modificato la query aggiungendo uno zero in più 1000000", e l'errore è questo :

    Codice PHP:
    SyntaxErrorJSON.parseunexpected end of data at line 2 column 1 of the JSON data 
    Non riesco a capire perchè, se tolgo lo zero in più, funziona tutto

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,036
    JSON.parse suppongo sia Javascript, stampa nella console il dato che recuperi prima di farne il parse, vedi che cosa c'è di sbagliato nella stringa.
    Potrebbe essere che la query ritorni un errore e che ci sia quello scritto invece di una stringa JSON.
    Ultima modifica di Alhazred; 01-09-2020 a 20:29

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34
    Tradotto:
    Codice PHP:
    error_reporting(-1);
    header("Content-Type: application/json; charset=UTF-8");
    $obj json_decode($_GET["x"], false);

    $conn = new mysqli("localhost""root""""test);
    $conn->set_charset("utf8");
    if((
    $result = $conn->query("SELECT dataOrdinenOrdineImportoOrdineimportoWebdocumentoWebdataWebdaRenderepiattaformatipoPagamentodataRimborsoimportoRimborsoeshopriferimentondocWebcorriere
    FROM report_crediti WHERE 
    (stato='Spedito' OR stato='Completato' OR stato='Ritirato'ORDER BY dataOrdine DESC LIMIT 100000")) !== false) {
    if(is_array((
    $outp = $result->fetch_all(MYSQLI_ASSOC)))) {


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

    Io proverei in questo modo.
    Penso sia un limite di memoria php se preleva più dati ovviamente con un numero intero più grande nel limit.
    Ultima modifica di darbula; 01-09-2020 a 20:59

  6. #6
    Niente da fare, da sempre questo errore:

    Codice PHP:
    SyntaxErrorJSON.parseunexpected end of data at line 2 column 3 of the JSON data 
    Provo ad aumentare i parametri di php

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    34
    Questo è un errore del cliente a te occorre l'errore del server, per favore usa il codice proposto senza apportare alcuna modifica.
    Ops la pagina è un risposta json, modificala in text/plain
    Ultima modifica di darbula; 01-09-2020 a 21:28

  8. #8
    Quote Originariamente inviata da darbula Visualizza il messaggio
    Questo è un errore del cliente a te occorre l'errore del server, per favore usa il codice proposto senza apportare alcuna modifica.
    Fatto, ho copiato il tuo script pari pari , a video o solo quell'errore, se vado nella console nessun errore.

    la pagine è questa :
    https://speedspedizioni.com/generatorejson_ordini.php

    Ultima versione di php

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,036
    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

  10. #10
    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?

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.