Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

j_quest

dados do FETCH_OBJ dentro de uma array e separar com outra array

Recommended Posts

Ola Pessoal

 

tenho a seguinte questao:

 

como colocar os dados recebidos de uma FETCH_OBJ com FOREACH dentro de uma array para poder usar em outras partes do sistema?

 

meu arquivo select.php

<?php 
ini_set('display_errors', true);
error_reporting(E_ALL);

//echo " Inicio do Select.php"."<br><br>";
include("conexao.php"); // inclui o arquivo conexao.php para uso
$pdo=conectar(); // recebe o valor da funcao conectar do arquivo conexao.php

$buscar=$pdo->prepare("SELECT * FROM professor");
$buscar->execute();

	echo "arquivos existentes = ".$buscar->rowCount()."<br><br>";

// FETCH_OBJ = retorno tipo array com objetos
$linha=$buscar->fetchALL(PDO::FETCH_OBJ);
foreach($linha as $listar){
	echo "".$listar->cod_prof." - ";
	echo "".$listar->nome_prof." - ";
	echo "".$listar->disciplina." - ";
	echo "".$listar->horario."<br />";
}
// var_dump($linha); 

//echo " "."<br><br>"."Fim do do arquivo insert.php"."<br>";
?>

o que quero é saber como colocar as informaçoes em orden dentro de uma array..

tipo:

// FETCH_OBJ = retorno tipo array com objetos
$linha=$buscar->fetchALL(PDO::FETCH_OBJ);
foreach($linha as $listar){
	$arrr1= array($listar->cod_prof, $listar->nome_prof, $listar->disciplina, $listar->horario );

$geral= array($arrr1); // aqui que nao esta fechando, parece que preciso de um loop com for, sei la..

echo "".print_r($arrr1).""; }

// acima coloquei dentro da array, só que foi tudo para a mesma array, virou uma bagunça, mas nao é assim que eu gostaria...

// quero que fique tipo abaixo, isso aproveitando loop do foreach...
$geral[0] = "$arrr1";
$geral[1] = "$arrr1";
$geral[2] = "$arrr1";

assim poderei listar de forma mais controlavel...

espero ter me explicado bem..

 

Valeu..

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá j_quest.

 

Infelizmente não deu pra entender direito o que você quer fazer.

 

Você quer transformar o objeto em array ou quer poder acessar esse objeto em outras partes da sua aplicação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Rafa..

como sou leigo(estou aprendendo ainda), nao sei qual melhor para mim.

mas quero ter acesso aos dados de qualquer outro parte da aplicaçao, sem ter de refazer todo o processo de pesquisa, apenas usando o include("select.php") e recebendo a lista em uma variavel para usar onde estiver ( acredito que array) . . .

 

tipo no arq "select.php" ter uma variavel/array com toda a lista dentro, e usando um return ( return $listageral ; )

 

e onde eu estiver apenas faço a listagem dos dados contidos na variavel " $listageral .."

 

neste cod:

<?php 
//echo " Inicio do Select.php"."<br><br>";
include("conexao.php"); // inclui o arquivo conexao.php para uso
$pdo=conectar(); // recebe o valor da funcao conectar do arquivo conexao.php

$buscar=$pdo->prepare("SELECT * FROM professor");
$buscar->execute();

	echo "arquivos existentes = ".$buscar->rowCount()."<br><br>";

// FETCH_OBJ = retorno tipo array com objetos
$linha=$buscar->fetchALL(PDO::FETCH_OBJ);
foreach($linha as $listar){
	echo "".$listar->cod_prof." - ";
	echo "".$listar->nome_prof." - ";
	echo "".$listar->disciplina." - ";
	echo "".$listar->horario."<br />";
}
// var_dump($linha); 

//echo " "."<br><br>"."Fim do do arquivo insert.php"."<br>";
?>

me diga, qual a melhor opçao voce recomenda para mim ?

espero que consiga me entender .

 

Valeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Rafa..

como sou leigo(estou aprendendo ainda), nao sei qual melhor para mim.

mas quero ter acesso aos dados de qualquer outro parte da aplicaçao, sem ter de refazer todo o processo de pesquisa, apenas usando o include("select.php") e recebendo a lista em uma variavel para usar onde estiver ( acredito que array) . . .

 

tipo no arq "select.php" ter uma variavel/array com toda a lista dentro, e usando um return ( return $listageral ; )

 

e onde eu estiver apenas faço a listagem dos dados contidos na variavel " $listageral .."

 

neste cod:

<?php 
//echo " Inicio do Select.php"."<br><br>";
include("conexao.php"); // inclui o arquivo conexao.php para uso
$pdo=conectar(); // recebe o valor da funcao conectar do arquivo conexao.php

$buscar=$pdo->prepare("SELECT * FROM professor");
$buscar->execute();

	echo "arquivos existentes = ".$buscar->rowCount()."<br><br>";

// FETCH_OBJ = retorno tipo array com objetos
$linha=$buscar->fetchALL(PDO::FETCH_OBJ);
foreach($linha as $listar){
	echo "".$listar->cod_prof." - ";
	echo "".$listar->nome_prof." - ";
	echo "".$listar->disciplina." - ";
	echo "".$listar->horario."<br />";
}
// var_dump($linha); 

//echo " "."<br><br>"."Fim do do arquivo insert.php"."<br>";
?>

me diga, qual a melhor opçao voce recomenda para mim ?

espero que consiga me entender .

 

Valeu...

no fim o que preciso saber é: como colocar os dados recebidos da linha 11 a 18 dentro de uma array para uso futuro, .. só nao sei como fazer isso . . .ha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Rafa..

fiz o teste dentro do arquivo onde ela se encontra e é o que preciso.. ate aqui certo..

 

esta array esta sendo usada no arquivo: pesquisar.php - mas tentei usar ela em outra parte da aplicaçao, no arq. site2.php mas da erro, como faço para usar ela em outro local da aplicaçao ?

 

 

tentei: include("pesquisar.php"); -- mas dentro da ID onde chamo ja aparece os dados, sem que eu possa manipular.

 

tentei: retur($arrr1); mas nao consegui..

 

fico grato pela ajuda .. e desculpe minhas duvidas que sao simples, mas estou estudando . . rsrs

 

Joni Ecker

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não estou conseguindo entender direito a sua dúvida.

 

A variável só estará disponível onde for executada.

Se você quiser acessar a mesma coisa em outro lugar, precisa realizar a consulta novamente. Tudo vai depender do caso.

 

Tenta explicar melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok

um exemplo:

 

arquivo "site.php" -- onde estao as DIVs e o layout do site..

arquivo "pesquisar.php" -- onde faz a pesquisa no BD veja abaixo a parte do cod do pesquisar.php

 

$linha=$buscar->fetchALL(PDO::FETCH_OBJ);
foreach($linha as $listar){
$arrr1= array($listar->cod_prof, $listar->nome_prof, $listar->disciplina, $listar->horario );
echo $arrr1[0]." - ";
echo $arrr1[1]." - ";
echo $arrr1[2]." - ";
echo $arrr1[3]." - ";
echo "<br>"; }
o que preciso é levar o resultado a lista de professores de alguma forma para o arquivo "site.php",,,
pensei em por isso dentro de uma funçao, mas nao estou conseguindo.. pois se colocar em uma funçao, poderei retornar uma variavel com os valores que preciso, e usar em qualquer lugar que eu chamar a funçao.. é possivel ?
se sim, pode me dar uma dica de como fazer ?
tentei isso, mas nao estou conseguindo:
function listar(){
$buscar=$pdoa->prepare("SELECT * FROM professor");
$buscar->execute();
//echo "arquivos existentes = ".$buscar->rowCount()."<br><br>";
$linha=$buscar->fetchALL(PDO::FETCH_OBJ);// FETCH_OBJ = retorno tipo array com objetos
return $linha; }
Valeu...
Joni Ecker

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu denovo.. esquentei a cabeça e quase terminei o que preciso, veja como fiz e se tiver alguma ideia de melhora pode me passar se quiser..

 

1- criei uma finction para colocar a lista na variavel "$linha".. no arquivo "funcoesbd.php"

function listar(){
	$pdoa=conectar();
	$buscar=$pdoa->prepare("SELECT * FROM professor");
	$buscar->execute(); 
//echo "arquivos existentes = ".$buscar->rowCount()."<br><br>";

$linha=$buscar->fetchALL(PDO::FETCH_OBJ);// FETCH_OBJ = retorno tipo array com objetos
return $linha; }

2 - no arquivo "pesquisar.php" eu chamei a funçao "listar" e coloquei o resultado na variavel $linha, assim consegui trabalhar os resultados e colocar em uma tabela..

** neste caso se tiver alguma dica, eu aceitarei sim..

<?php
ini_set('display_errors', true); error_reporting(E_ALL);

echo "<body text='black' bgcolor='white'>";

 // *** incia acesso ao BD ***
include("funcoesbd.php"); // inclui o arquivo conexao.php para uso

// *** inicia pesquisa: lista de clientes***
$linha=listar(); // entra em funcoesbd e executa a pesquisa, devolve a variavel cheia
echo "<table border='1px'>";
echo "<tr><td>Cod.</td><td>Professor </td><td>Matéria</td><td>Horário</td></tr>";
foreach($linha as $campo){
	$arrr1= array($campo->cod_prof, $campo->nome_prof, $campo->disciplina, $campo->horario );
echo "<tr><td>".$arrr1[0]."</td><td>".$arrr1[1]."</td><td>".$arrr1[2]."</td><td>".$arrr1[3]."</td></tr>";
}
echo "</table>";

?>

3 - nor arquivo principal do site "site2,php" eu apenas me certifiquei do clique no botao "listar/um" e fiz uma chamada do arquivo "pesquisar.php" inteiro para detro da DIV principal que eu queria..

<div id="site">
	<div id="topo"><span class="banner"> Madeiras Nobres </span> <br /><br />
	<span class="banner-foot"> Rua Matagal, 456 - Floresta Mata Nativa - Eco Brasil - Brasil- America do Sul</span></div> 
		
<div id="menu"><span class="menu">
<FORM METHOD="post" ACTION="site2.php">
<INPUT TYPE="submit" VALUE=" Listar " name="um">
<INPUT TYPE="submit" VALUE=" Cadastrar " name="dois">
</FORM></div>

<div id="conteudo" >
<?php
$var = ""; 
$var2 = "";

if(isset($_POST['um'])){ 
    $var = $_POST['um']; 
    $var2 = "Lista de Clientes"; 
	echo  "<br /><span class='titulo'>".$var2."</span><br /><br />" ; 
include('pesquisar.php');

} else if(isset($_POST['dois'])){ 
    $var = $_POST['dois']; 
    $var2 = "Cadastro de Clientes"; 	 
	echo $var2;
include('cadastro.php');
} else { $var =""; $var2 ="";}

?>
</div>
<div id="foot"> <br /><br /><span class="banner-foot"> Rua Matagal, 456 - Floresta Mata Nativa - Eco Brasil - Brasil- America do Sul</span> </div>
</div>
</body></html>

e o resultado ficou ótimo... eu ia postar aqui o print da tela, mas nao sonsegui pegar o arquivo do meu PC . .

 

tenho uma ultima pergunta nesta parte do script:

 

em relaçao a contagem do numero professores que tem na variavel "$buscar" no arquivo "funcoesdb.php"

eu nao consegui levar este resultado para usar junto no arquivo "pesquisar.php".. mesmo colocanto um segundo return, veja abaixo como ofiz e nao deu certo..

no arquivo "funcoesdb.php"

echo "arquivos existentes = ".$buscar->rowCount()."<br><br>";

$numero=($buscar->rowCount());

// das formas acima ele calcula e me da o resultado normalmente.

 

// mas quando tento uma das formas abaixo nao consigo, pois da erro:

return ($linha,$numero);

return $linha $numero ;

return $linha, $numero;

return ($linha,$numero);

 

return $linha;

return $numero;

 

 

tem alguma soluçao para mim usar a variavel com o numero da contagem la no arquivo "pesquisar.php" ?

 

 

Mesmo assim, valeu pela interaçao em minhas duvidas..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.