Ajuda PHP + Json

0 respostas
jsonphpmysql
M

Boa tarde! Pessoal estou quebrando a cabeça e chegou a hora de pedir ajuda…rs estou com problemas na passagem de parâmetros e retorno em json com PHP…

Preciso passar via url os parametros para uma query em my sql e o retorno desta query apresentar em json…

Este es códigos abaixo funcionam, porém não consigo passar parâmetros e o retorno não está como deveria:

este seria meu index.php

<?php
header('Content-Type: application/json; charset=utf-8');
require_once 'classes/Cliente.php';
class Rest
{
	public static function open($requisicao)
	{
		$url = explode('/', $requisicao ['url']);
		$classe = ucfirst($url[0]);
		array_shift($url);
		$metodo = $url[0];
		array_shift($url);
		$parametros = array();
		try {
			if (class_exists($classe)) {
				if (method_exists($classe, $metodo)) {
					$retorno = call_user_func_array(array(new $classe, $metodo), $parametros) ;

					return json_encode(array($retorno));
				} else {
					return json_encode(array('Método inexistente!'));
				}
			} else {
				return json_encode(array('Classe inexistente!'));
			}	
		} catch (Exception $e) {
			return json_encode(array($e->getMessage()));
		}
		
	}
}
if (isset($_REQUEST)) {
	echo Rest::open($_REQUEST);
}
?>

esta seria minha classe:


<?php

	class Cliente
	{ 
		
		
		public function mostrar()
		{
			//{include_once 'index.php';
			//$parametros = $url;}
						
			$pdo = new PDO("mysql:host=db.com.br; dbname=db1;", "user1", "x0");

			$sql = "SELECT (contato) FROM EMPRESAS WHERE cd_empresa = '007' ";
			$sql = $pdo->prepare($sql);
			$sql->execute();

			$resultados = array();

			while($row = $sql->fetch(PDO::FETCH_ASSOC)) {
			$resultados =$row;
			}

			if (!$resultados) {
				throw new Exception("Cliente nao cadastrado!");
			}
			
			return $resultados;
		}
	}
	

Porém o retorno é este:


{"dados":{"Pessoa_contato":"XICO                                "}}


Se eu tento dar um trim para remover o espaço no final do registro  eu recebo:

{"Contatos":"TRIM":{"Pessoa_contato":"XICO"}}

Preciso de duas coisas:

1 - que o código do cliente (neste caso “007” possa ser informado para pesquisa

2 - o resultado retorne apenas { “Pessoa_contato”=“XICO”}

Obs.: se altero (array(‘Contatos’ => $retorno)); para (array($retorno)); no jason ele me coloca [ no início e ] no final do resultado, ficando assim: [{“Pessoa_contato”:"EUROSTAR "}]

Como resolver isto???

Se alguém puder me ajudar agradeço.

Criado 9 de março de 2020
Respostas 0
Participantes 1