Muchas gracias
Neftali y
Casimiro Notevi
Germán nuevamente me tiras un cable hermano.
Tienes toda la rasón: no es un JSON válido, debería quedarme de esta forma (no les he puesto la manera en que lo traté de la forma en que esta porque la verdad me da hasta pena por lo disparatado e ineficiente del invento):
Código:
[{
"nombre": "Juan",
"destinatario": "Pedro",
"mensaje": "de Juan para Pedro",
"estado": "nuevo"
}, {
"nombre": "Alberto",
"destinatario": "Pedro",
"mensaje": "de Alberto para Pedro",
"estado": "nuevo"
}, {
"nombre": "Carlos",
"destinatario": "Pedro",
"mensaje": "de Carlos para Pedro",
"estado": "nuevo"
}]
Ahora, en los foros de PHP que he leído (en php si que estoy en cero) el siguiente código (modificado para mis asuntos claro) es el que he encontrado para gerear un JSON y enviarlo a un cliente, pero ya veo que no es el corecto o simplemente estoy haciendo algo mal:
Código PHP:
function dame_mensajes($mysqli, $usuario_solicitante)
{
$mensajes='';
$sql = 'SELECT * FROM bandeja_entrada WHERE destinatario = "' . $usuario_solicitante . '"';
if ($result = $mysqli->query($sql))
{
while($r=$result->fetch_assoc())
{
$mensajes = $mensajes . json_encode($r);
}
$result->close();
return $mensajes;
}
else
{
return "ERROR:Ha ocurrido un error en el servidor.
Intente el envío más tarde y si el problema persiste contacte con el administrador del sistema.";
}
}
Esta función la modifiqué para que me generara un JSON válido cambiando las siguientes líneas:
Código PHP:
$mensajes = $mensajes . json_encode($r);
por
Código PHP:
$mensajes = $mensajes . "," . json_encode($r);
y
Código PHP:
return $mensajes;
por
Código PHP:
return "[" . $mensajes . "]";
De esta manera (que no se si es la correcta) me genera “casi” lo que necesito. Digo “casi” porque me genera una coma (,) que no va
(marcada en rojo).
Código:
[,{
"nombre": "Juan",
"destinatario": "Pedro",
"mensaje": "de Juan para Pedro",
…
¿Alguna idea para quitarla? O algún otro código para genrar el JSON correctamente.