Jump to content
Giuliano Maffei

Passando uma matriz para uma consulta

Recommended Posts

Oi Pessoal, sou novo por aqui.

Agradeço se alguém puder me ajudar.

Tenho um banco de dados com a tabela abaixo:

DB pets
------------------------------------------------------------------------------------
| id | pet_tutor | pet_name | pet_species | pet_breed  |
------------------------------------------------------------------------------------
| 1  |        José |             Rex |                   1 |    Vira-latas |
| 2  |      Paulo |      Bichano |                  2 |        Siamês |
| 3  |       João |             Max |                  1 | Lhasa-apso |
------------------------------------------------------------------------------------

 

Fiz o código abaixo:

$species_lang = array('0' => 'Selecionar','1' => 'Cachorro', '2' => 'Gatos', '3' => 'Acarás');

 

SELECT (pets.id as id, pet_tutor, pet_name, {(" . $species_lang['pet_species'] . ")}, pet_breed FROM pets)

 

Resultado:
-----------------------------------------------------------------------------------
| id | pet_tutor | pet_name | pet_species | pet_breed  |
------------------------------------------------------------------------------------
| 1  |        José |             Rex |                        | Vira-latas |
| 2  |       Paulo |    Bichano |                        |     Siamês |
| 3  |        João |           Max |                        | Lhasa-apso |


-----------------------------------------------------------------------------------

Porque não consigo carregar o campo 'pet_species' com a raça do pet. Alguém tem uma luz pra me ajudar?

 

Obrigado

Share this post


Link to post
Share on other sites

Parece que você tem que JOIN com a tabela species, certo?

Share this post


Link to post
Share on other sites

Oi,

O campo pet_species vai o id da espécie.

Como o código que estou fazendo é multilínguas, então a espécie do animal está em uma matriz.

 

Em inglês a matriz é assim:

$species_lang = array('0' => 'Select', '1' => 'Dog', '2' => 'Cat', '3' => 'Bird');

 

Em português ela é assim:

$species_lang = array('0' => 'Selecionar','1' => 'Cachorro', '2' => 'Gatos', '3' => 'Acarás');

 

Se eu estiver, por exemplo, usando a configuração de lingas em português, o código tem que receber qual o id da espécie e buscar o valor na matriz de espécies em português.

Assim, o resultado deveria ficar assim:

-----------------------------------------------------------------------------------
| id | pet_tutor | pet_name | pet_species | pet_breed  |
------------------------------------------------------------------------------------
| 1  |        José |             Rex |   Cachorro     | Vira-latas |
| 2  |       Paulo |    Bichano |    Gato            |     Siamês |
| 3  |        João |           Max |    Cachorro | Lhasa-apso |

-----------------------------------------------------------------------------------

Mas está retornando assim:

-----------------------------------------------------------------------------------
| id | pet_tutor | pet_name | pet_species | pet_breed  |
------------------------------------------------------------------------------------
| 1  |        José |             Rex |                        | Vira-latas |
| 2  |       Paulo |    Bichano |                        |     Siamês |
| 3  |        João |           Max |                        | Lhasa-apso |

-----------------------------------------------------------------------------------

Se eu altero a query e trocar o trecho "{(" . $species_lang['pet_species'] . ")}" para "pet_species", o resultado fica assim:

 

-----------------------------------------------------------------------------------
| id | pet_tutor | pet_name | pet_species | pet_breed  |
------------------------------------------------------------------------------------
| 1  |        José |             Rex |           1          | Vira-latas |
| 2  |       Paulo |    Bichano |            2          |     Siamês |
| 3  |        João |           Max |            1          | Lhasa-apso |

-----------------------------------------------------------------------------------

Ou seja eu forneço uma chave pra matriz, mas ela não está retornando o valor.

Share this post


Link to post
Share on other sites
2 horas atrás, William Bruno disse:

Parece que você tem que JOIN com a tabela species, certo?

Oi,

O campo pet_species vai o id da espécie.

Como o código que estou fazendo é multilínguas, então a espécie do animal está em uma matriz.

 

Em inglês a matriz é assim:

$species_lang = array('0' => 'Select', '1' => 'Dog', '2' => 'Cat', '3' => 'Bird');

 

Em português ela é assim:

$species_lang = array('0' => 'Selecionar','1' => 'Cachorro', '2' => 'Gatos', '3' => 'Acarás');

 

Se eu estiver, por exemplo, usando a configuração de lingas em português, o código tem que receber qual o id da espécie e buscar o valor na matriz de espécies em português.

Assim, o resultado deveria ficar assim:

-----------------------------------------------------------------------------------
| id | pet_tutor | pet_name | pet_species | pet_breed  |
------------------------------------------------------------------------------------
| 1  |        José |             Rex |   Cachorro     | Vira-latas |
| 2  |       Paulo |    Bichano |    Gato            |     Siamês |
| 3  |        João |           Max |    Cachorro | Lhasa-apso |

-----------------------------------------------------------------------------------

Mas está retornando assim:

-----------------------------------------------------------------------------------
| id | pet_tutor | pet_name | pet_species | pet_breed  |
------------------------------------------------------------------------------------
| 1  |        José |             Rex |                        | Vira-latas |
| 2  |       Paulo |    Bichano |                        |     Siamês |
| 3  |        João |           Max |                        | Lhasa-apso |

-----------------------------------------------------------------------------------

Se eu altero a query e trocar o trecho "{(" . $species_lang['pet_species'] . ")}" para "pet_species", o resultado fica assim:

 

-----------------------------------------------------------------------------------
| id | pet_tutor | pet_name | pet_species | pet_breed  |
------------------------------------------------------------------------------------
| 1  |        José |             Rex |           1          | Vira-latas |
| 2  |       Paulo |    Bichano |            2          |     Siamês |
| 3  |        João |           Max |            1          | Lhasa-apso |

-----------------------------------------------------------------------------------

Ou seja eu forneço uma chave pra matriz, mas ela não está retornando o valor.

Share this post


Link to post
Share on other sites

Esta matriz também está em tabela ? 

 

Share this post


Link to post
Share on other sites
Em 11/01/2021 at 14:27, Motta disse:

Esta matriz também está em tabela ? 

 

Não, é uma variável na linha de códigos;

Em português ela é assim:

$species_lang = array('0' => 'Selecionar','1' => 'Cachorro', '2' => 'Gatos', '3' => 'Acarás');

Share this post


Link to post
Share on other sites

certo, mas ai tá misturando php com query. Primeiro você trás o id:

 

SELECT (pets.id as id, pet_tutor, pet_name, pet_species, pet_breed FROM pets)

e depois na hora de imprimir na tabela você coloca a tradução:

 

<td><?= $species_lang[$row->pet_species] ></td>

 

algo assim, se entendi bem, não é a melhor forma de fazer, mas parece que é como o teu sistema foi pensado.

Share this post


Link to post
Share on other sites
13 horas atrás, William Bruno disse:

certo, mas ai tá misturando php com query. Primeiro você trás o id:

 

SELECT (pets.id as id, pet_tutor, pet_name, pet_species, pet_breed FROM pets)

e depois na hora de imprimir na tabela você coloca a tradução:

 

<td><?= $species_lang[$row->pet_species] ></td>

 

algo assim, se entendi bem, não é a melhor forma de fazer, mas parece que é como o teu sistema foi pensado.

Sim, ai daria certo.

Mas o que eu queria era resolver essa matriz na query.

eu alterei o código da query e fiz assim:

 

SELECT (pets.id as id, pet_tutor, pet_name, IF(pet_species = '0','N/A','" . $species_lang["pet_species"] . "') AS species, pet_breed FROM pets)

 

veja este exemplo

-----------------------------------------------------------------------------------
| id | pet_tutor | pet_name | pet_species | pet_breed  |
------------------------------------------------------------------------------------
| 1  |        José |             Rex |           1          | Vira-latas |
| 2  |       Paulo |    Bichano |            2          |     Siamês |
| 3  |        João |           Max |            1          | Lhasa-apso |

| 4  |      Pedro | Loro José |            0          | Papagaio |

-----------------------------------------------------------------------------------

 

Consegui algo que queria, pois se a espécie não for cadastrada pelo usuário, então ela terá o valor 0 (zero), ai o resultado ficou assim:

 

-----------------------------------------------------------------------------------
| id | pet_tutor | pet_name | pet_species | pet_breed  |
------------------------------------------------------------------------------------
| 1  |        José |             Rex |                      | Vira-latas |
| 2  |       Paulo |    Bichano |                      |     Siamês |
| 3  |        João |           Max |                      | Lhasa-apso |

| 4  |      Pedro | Loro José |            N/A   | Papagaio |

-----------------------------------------------------------------------------------

Então o código está pegando o valor do campo 'pet_species' mas não está conseguindo passar a Key para a array trazer o valor. Então o problema está aqui no $species_lang["pet_species"].

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By patrickjnunes1995
      Bom dia, estou tendo dificuldades em recuperar dados de uma tabela do banco de dados, pelo PHP.
      <?php require_once('conexao_bd.php'); $consulta = "SELECT * FROM table"; $con = $mysqli->query($consulta) or die ($mysql->error); echo $dado["nome"]; ?>  
      E o arquivo conexão_bd.php está ok.
       
      Não pude encontrar em nenhuma página pela internet essa solução.
       
      Quero que exiba na página PHP, valores como algum nome, gravado na tabela do banco de dados.
       
      Desde já obrigado.
    • By adamo marinho
      Estou tentando achar numeros iguais dentro de arrays criadas usando a função array_intersect, porem para facilitar o meu projeto, precisaria incluir variaveis dentro das arrays, alguem pode ajudar por favor?

      <?php $v1_1 = 1; $v1_2 = 2; $v1_3 = 3; $v1_4 = 4; $v1_5 = 5; $v1 = array($v1_1, $v1_2, $v1_3, $v1_4, $v1_5); $v2_1 = 6; $v2_2 = 7; $v2_3 = 8; $v2_4 = 9; $v2_5 = 10; $v2 = array($v2_1, $v2_2, $v2_3, $v2_4, $v2_5); $v3_1 = 10; $v3_2 = 9; $v3_3 = 8; $v3_4 = 7; $v3_5 = 6; $v3 = array($v3_1, $v3_2, $v3_3, $v3_4, $v3_5); $v4_1 = 5; $v4_2 = 4; $v4_3 = 3; $v4_4 = 2; $v4_5 = 1; $v4 = array($v4_1, $v4_2, $v4_3, $v4_4, $v4_5); $resultado = array_intersect($v1, $v2, $v3, $v4 ); var_dump($resultado); ?>
    • By srs1999_
      Tópico
       
      Site em Código
      Sobre desenvolver sites sem o wordpress que ja tá tudo ali feito que seja um site dinâmico ou seja com banco de dados , APIs de pagamento, Painel para o usuário ,  além de todas  as funções que tem no wordpress e você teria propriedade pra explicar sobre detalhes mais técnicos da produção onde no wordpress só quem entende de progrqmação explicaria algum detalhe técnico 
      Então usando basicamente : 
      FRONT END 
      HTML 
       CSS 
      JAVASCRIPT 
      ALGUMA DE BACKEND COMO PHP E BANCO DE DADOS
      Pode se criar sites/sistemas tão bons ou melhores que no wordpress
       
      Fato : o proprio wordpress é feito em php e ate o proprio facebook tbm em php
      Fato 2 :  cerca de 70% dos sites são feitos em Wordpress
       
      Acho esse lance de procurar o caminho mais fácil limita muito a pessoa por exemplo é facil editar imagens no paint bem intuitivo , agora para editar no photoshop com muitas outras possibilidades  acaba sendo importante ir explorando essa elaboração mais difícil  com um mesmo objetivo. No caso do exemplo ( editar imagens )  
       
      Reflexão:
      Vale a pena se dedicar a trabalhar com a ferramenta Wordpress apenas por ser um meio rápido de ganhar dinheiro ?
      Ou trabalhar sem wordpress  usando tudo que exigido pra criar coisas originais mais que não seria tão rápido a produção. Mas creio que além dos sites feitos também geraria a possibildade de vender o sistema web criado para o cliente personalizar .
       
      Você Desenvolveria de que forma :
       Wordpress apenas ?
       
      Conhecer programação pra trabalhar 
      com  Wordpress ?
       
      Produzir tudo só com programação totalmente dinâmico sem  Wordpress?
    • By Duilio Gomes Pereira
      Tenho um banco de dados com mais de 21 mil usuários do wordpress. Como faço para deletar os usuário no  Phpmyadmin e deixar apenas 2 usuários?
       
      Pois só preciso de 2 usuários neste site.
       
      Obrigado!
    • By Duilio Gomes Pereira
      Olá!
      Tenho um bando de dados com mais de 21 mil usuários do wordpress. Como faço para deletar no Phpmyadmin e deixar apenas 2 usuários?
      Obrigado!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.