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.