Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos. Estou tentando há bastante tempo, porém não estou conseguindo resolver meu problema.
Estou recebendo do BD os valores de uma variável da seguinte forma:
while ($linha = pg_fetch_array($Resultado)) {
$variavel = $linha["dados_do_bd"];
}
Está retornando o seguinte:
var_dump($variavel);
string '{"Texto_1","Texto_2"}' (length=...)
string '{NULL}' (length=6)
Preciso mostrar os dados da seguinte forma:
Texto_1, Texto_2.
Tentei de várias maneiras, porém sem sucesso.
Se alguém puder dar alguma dica, agradeço.
Obrigado. Aguardo retorno.
Uma opção legal seria retirar o while, colocar pg_fetch_all() pra retornar todos os registros de uma única vez no formato array na variável $linha e depois usar join() pra inserir as vírgulas automaticamente, seria algo mais ou menos assim:
$linha = pg_fetch_all($Resultado));
$variavel = join("," , $linha);
var_dump($variavel) // Texto_1,Texto_2[...]
Não posso te dizer com precisão, pq nunca usei pg, mas deve ser igual aos outros.
seria dessa parte que você está falando?
public function Cadastrar(Turma $turma) {
try {
$sql = "INSERT INTO turma (turma, nivel, descricao, cargahoraria,endereco, cidade) VALUES (:turma, :nivel, :descricao, :cargahoraria, :endereco, :cidade)";
$param = array(
":turma" => $turma->getTurma(),
":nivel" => $turma->getNivel(),
":descricao" => $turma->getDescricao(),
":cargahoraria" => $turma->getCarga(),
":endereco" => $turma->getEndereco(),
":cidade" => $turma->getCidade()
);
$res = $this->pdo->ExecuteNonQuery($sql, $param);
$this->setLastId($this->pdo->GetLastId());
return $res;
} catch (PDOException $ex) {
if ($this->debug) {
echo "ERRO: {$ex->getMessage()} LINE: {$ex->getLine()}";
}
return false;
}
}>
Agora, gedmilson disse:
seria dessa parte que você está falando?
Você postou no tópico errado, mas era dessa parte que eu tava falando sim, e testa o arquivo inteiro que te passei.
Desculpe o engano as vezes me confundo com o fórum.
Olá amigos. Obrigado pela ajuda.
Fiz da seguinte forma:
while ($linha = pg_fetch_array($Resultado)) {
$variavel = $linha["dados_do_bd"];
$variavel_1 = trim($variavel, '{""}');
$variavel_mostra = str_replace(array('"', "'"), null, $variavel_1);
}
Consegui mostrar os dados da forma desejada. porém não consigo colocar um espaço entre os textos e nem ponto final.
Ficou assim:
Texto_1,Texto_2
No aguardo. Valeu.while ($linha = pg_fetch_array($Resultado)) {
$variavel = $linha["dados_do_bd"];
$variavel_1 = trim($variavel, '{""}');
$variavel_mostra = str_replace(array('"', "'"), null, $variavel_1);
$variavel_mostra = str_replace("," , ", " , $variavel_mostra); // troca a vírgula por vírgula com espaço.
}
echo $variavel_mostra . "."; // acrescenta o ponto final no final do processo.
Pra simplificar seu código acho que só isso aqui resolveria:
$linha = pg_fetch_all($Resultado));
$variavel = join(", " , $linha) . ".";Beleza. Problema resolvido. Obrigado.
Como faço para encerrar tópico?
de uma olhada aqui: http://php.net/manual/pt_BR/control-structures.foreach.php