Ir para conteúdo

POWERED BY:

Arquivado

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

Jhon Paulo

[Resolvido] Abstrair uma consulta SQL

Recommended Posts

Olá galera, estou tentando tornar uma consulta ao banco de dados abstrata.

 

cheguei em um ponto da minha aplicação em que se faz o retorno dos dados via json para requisições ajax.

 

porém não estou conseguindo fazer os dados serem armazenados no array como deveria para depois serem codificados para json.

 

O código que estou utilizando está me retorno o seguinte através de um var_dump:

 

array
 0 => 
   array
     0 => string '1' (length=1)
     1 => string 'harrypotterpf.gif' (length=17)
     2 => string 'Harry Potter e a Pedra Filosofal' (length=32)
     3 => string 'ROWLING, Joanne K' (length=17)
     4 => string 'Deveria ser ...'... (length=2058)
     5 => string '2000' (length=4)
     6 => string '2' (length=1)
     7 => string '7' (length=1)
 1 => 
   array
     0 => string '2' (length=1)
     1 => string 'ubhdc.jpg' (length=9)
     2 => string 'Uma Breve História do Cristianismo' (length=35)
     3 => string ' Blainey, Geoffrey' (length=18)
     4 => string 'É notável que um homem ...'... (length=1129)
     5 => string '2000' (length=4)
     6 => string '2' (length=1)
     7 => string '8' (length=1)

 

eu gostaria de armazenar o array desta maneira:

 

array
 0 => 
   array
     0 => string 'id' => '1' (length=1)
     1 => string 'imagem ' => 'harrypotterpf.gif' (length=17)
     2 => string 'nome' => 'Harry Potter e a Pedra Filosofal' (length=32)
     3 => string 'autor' => 'ROWLING, Joanne K' (length=17)
     4 => string 'descricao' => 'Deveria ser ...'... (length=2058)
     5 => string 'ano' => '2000' (length=4)
     6 => string 'id_categoria' => '2' (length=1)
     7 => string 'id_genero' => '7' (length=1)
 1 => 
   array
     0 => string 'id' => '2' (length=1)
     1 => string 'imagem' => 'ubhdc.jpg' (length=9)
     2 => string 'nome' => 'Uma Breve História do Cristianismo' (length=35)
     3 => string 'autor' => ' Blainey, Geoffrey' (length=18)
     4 => string 'descricao' => 'É notável que um homem ...'... (length=1129)
     5 => string 'ano' => '2000' (length=4)
     6 => string 'id_categoria' => '2' (length=1)
     7 => string 'id_genero' => '8' (length=1)

 

porém não consigo implantar essa segunda maneira :/

 

meu código comentado:

 

<?PHP
$ma = array();
while ($q = mysql_fetch_object($sql)) { //percorrer a consult sql
$n_campos = mysql_num_fields($sql); // número de colunas
$ma2 = array();
for ($i=0; $i<$n_campos; $i++) { // percorrer todas as colunas
	$campo = mysql_fetch_field($sql, $i); // pego a coluna
	$camponame = $campo->name; // nome da coluna. Ex: nome_user
	$campovalue = $q->$camponame; // valor da coluna. Ex: Jhon Paulo
	array_push($ma2, utf8_encode($campovalue)); //Aqui é o meu problema! queria que aaqui eu pudesse utilizar "$camponame=>$campovalue"
}
array_push ($ma,$ma2); // jogo os valores da consulta em uma linha de $ma 
}
var_dump($ma);
?>

 

quero deixar claro que é a primeira vez que tento tornar um resultado de consulta abstrato.

Não sei se estou indo pelo caminho certo, mas é oq eu consegui imaginar com os conhecimentos que tenho!

Aceito críticas/dúvidas/sugestões. Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá galera,

consegui resolver meu problema :D

 

<?PHP
$ma = array();
while ($q = mysql_fetch_object($sql)) { 
       $n_campos = mysql_num_fields($sql); 
       $ma2 = array();
       for ($i=0; $i<$n_campos; $i++) { 
               $campo = mysql_fetch_field($sql, $i); 
               $camponame = $campo->name; 
               $campovalue = $q->$camponame;
              $ma2["$camponame"] = utf8_encode($campovalue)); //solução
       }
       $ma[] = $ma2; // jogo os valores da consulta em uma linha de $ma 
}
var_dump($ma); // mostro o array
?>

 

resultado:

 

array
 0 => 
   array
     0 => string 'id' => '1' (length=1)
     1 => string 'imagem ' => 'harrypotterpf.gif' (length=17)
     2 => string 'nome' => 'Harry Potter e a Pedra Filosofal' (length=32)
     3 => string 'autor' => 'ROWLING, Joanne K' (length=17)
     4 => string 'descricao' => 'Deveria ser ...'... (length=2058)
     5 => string 'ano' => '2000' (length=4)
     6 => string 'id_categoria' => '2' (length=1)
     7 => string 'id_genero' => '7' (length=1)
 1 => 
   array
     0 => string 'id' => '2' (length=1)
     1 => string 'imagem' => 'ubhdc.jpg' (length=9)
     2 => string 'nome' => 'Uma Breve História do Cristianismo' (length=35)
     3 => string 'autor' => ' Blainey, Geoffrey' (length=18)
     4 => string 'descricao' => 'É notável que um homem ...'... (length=1129)
     5 => string 'ano' => '2000' (length=4)
     6 => string 'id_categoria' => '2' (length=1)
     7 => string 'id_genero' => '8' (length=1)

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.