Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Encode JSON non stampa niente

    Ciao ragazzi, ho impostato questo codice per visualizzare dei dati JSON.


    codice:
    $sql = "SELECT * FROM mytable"
    
    
    $parkAzienda = new Azienda();
    
    
    mysql_select_db("mydb", $cn);
    $query = mysql_query($sql, $cn);
    
    
    
    
    WHILE ($e = mysql_fetch_assoc($query))
    {
    	$output[] = $e;
    }
    
    
    print(json_encode($output));
    Se vado a stampare singolarmente $output all'interno del ciclo for, vedo che al suo interno ci sono dati, quindi è valorizzato, però il json_encode non mi stampa nessun valore.

    Cosa sto sbagliando?
    Ogni popolo ha il governo che si merita...

  2. #2
    Ok ho trovato forse il problema...

    Se provo a fare il "json_encode" di un array di oggetti si pianta e non mi stampa nulla... mentre se provo a farlo di un singolo oggetto la stampa avviene perfettamente.

    Ma in teoria non dovrebbe prendersi in automatico gli oggetti di quell'array??
    Ogni popolo ha il governo che si merita...

  3. #3
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Quindi cosa contiene realmente $output? Dal codice che hai postato non dovrebbero esserci oggetti, quindi cosa c'è? var_dump($output); per favore.

  4. #4
    Quote Originariamente inviata da .Kurt Visualizza il messaggio
    Quindi cosa contiene realmente $output? Dal codice che hai postato non dovrebbero esserci oggetti, quindi cosa c'è? var_dump($output); per favore.
    Allora, ho modificato il codice come segue:



    codice:
    for($x=0; $x<$numrow; $x++)
    {
    	$rs = mysql_fetch_row($query);
    	$Aziende[$x] = new Azienda($rs[1], $rs[23]);
    }
    
    
    mysql_close($cn);
    
    
    //var_dump($Aziende);
    
    
    echo json_encode($Aziende);
    1. Commentando il var_dump, la pagina risulta vuota senza nessun dato
    2. Utilizzando invece l'istruzione var_dump (quindi togliendo il commento) mi viene visualizzato l'array come segue:

    codice:
    array(55) {  [0]=>  object(Azienda)#2 (2) {    ["Nome"]=>    string(14) "La rocca"    ["Coordinate"]=>    string(19) "44.779549, 9.837062"  }  [1]=>  object(Azienda)#3 (2) {    ["Nome"]=>    string(6) "Mentir"    ["Coordinate"]=>    string(19) "43.971413, 9.572154"  }  [2]=>  object(Azienda)#4 (2) {    ["Nome"]=>    string(5) "lai"    ["Coordinate"]=>    string(19) "44.170659, 9.179384"  }
    e così via fino a raggiungere 55 elementi all'interno dell'array...
    Ogni popolo ha il governo che si merita...

  5. #5
    Se addirittura modifico così l'istruzione json_encode:

    echo json_encode($Aziende[0]);

    Mi stampa correttamente i dati relativi sottoforma di JSON di quell'elemento dell'array.

    Mi manca qualcosa ma non riesco a capire cosa...
    Ogni popolo ha il governo che si merita...

  6. #6
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Per me dovrebbe funzionare. Abilita la visualizzazione degli errori, e controlla cosa succede. Dubito seriamente che solo per quell'array hai superato il memory_limit impostato, o che tu abbia una versione così vecchia di php che json_encode ancora non era stato introdotto (da 5.2).

  7. #7
    Quote Originariamente inviata da .Kurt Visualizza il messaggio
    Per me dovrebbe funzionare. Abilita la visualizzazione degli errori, e controlla cosa succede. Dubito seriamente che solo per quell'array hai superato il memory_limit impostato, o che tu abbia una versione così vecchia di php che json_encode ancora non era stato introdotto (da 5.2).

    Assurdo... la versione è la 5.5.9, mentre errori non me ne mostra, l'unico è relativo alla connessione al DB che risulta deprecata e mi consiglia di usare PDO, ma non deve influire sul mio risultato!

    Porca miseria non è possibile questa cosa...
    Ogni popolo ha il governo che si merita...

  8. #8
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    json_last_error_msg() cosa restituisce?

  9. #9
    Quote Originariamente inviata da .Kurt Visualizza il messaggio
    json_last_error_msg() cosa restituisce?
    Ok mi restituisce questo errore:

    codice:
    Malformed UTF-8 characters, possibly incorrectly encoded
    Ogni popolo ha il governo che si merita...

  10. #10
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Ecco quindi la tua risposta. I tuoi dati non sono in utf-8. Visto che gli oggetti li popoli con dati presi dal db, probabilmente vorresti settare il set di caratteri della connessione in utf-8, http://forum.html.it/forum/showthrea...readid=2901187

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 © 2025 vBulletin Solutions, Inc. All rights reserved.