Ir para conteúdo

Arquivado

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

mcflymito

Problema com coluna

Recommended Posts

há um jeito de separar valores inseridos dentro de uma coluna

e exibi-los também separados, ex: os valores 120, 160 estão salvos na mesma coluna, mas quero exibilos separadamente, tipo: valor1, valor2

 

eu só consigo exibir eles juntos, como se fossem um só numero

 

 

 

Sem título.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em php? Os valores variam entre unidades, dezenas, centenas, milhares e etc, ou são apenas na casa das centenas?

 

Se for em PHP e for apenas na casa das centenas, você pode utilizar o substr(). por exemplo:

 

$valor1 = substr("$coluna->fav", 0, 3);
$valor2 = substr("$coluna->fav", 5, 8);

echo $valor1;
echo $valor2;

Também pode pesquisar sobre o substr no link abaixo:

http://php.net/manual/pt_BR/function.substr.php

 

Caso os valores variem você pode utilizar o explode() junto com o substr(). por exemplo:

 

$fav = explode(" ", $coluna->fav);
$valor1 = substr($fav[0], 0, -1);
$valor2 = $fav[1];

echo $valor1;
echo $valor2;

O substr() vai servir apenas para eliminar a vírgula nesse ultimo caso.

 

Também pode pesquisar sobre o explode no link abaixo:

http://php.net/manual/pt_BR/function.explode.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

É uma má prática de modelagem armazenar valores desta forma.

 

O melhor é separar os valores em linhas diferentes.

 

No caso d se precisar "juntar" para algum sql pode-se usar o group_concat . mas o inverso complica muito a query 

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 horas atrás, Motta disse:

É uma má prática de modelagem armazenar valores desta forma.

 

O melhor é separar os valores em linhas diferentes.

 

No caso d se precisar "juntar" para algum sql pode-se usar o group_concat . mas o inverso complica muito a query 

 

Meu intuito e criar uma lista de favoritos que armazena id's.

essa e a única forma que vejo pra fazer, sou bem noob em mysql e php, mas quero aprender.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que seria este "fav" 

 

no lugar de 

id           fav

1234    10,20

 

seria

 

id            fav

1234     10

1234     20

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 horas atrás, Motta disse:

O que seria este "fav" 

 

no lugar de 

id           fav

1234    10,20

 

seria

 

id            fav

1234     10

1234     20

 

Exatamente como a imagem do meu 1° tópico

Inserir vários números em uma coluna e utilizá-los separadamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então , normalize a tabela para ter os valores separados.

 

Simplifica o sql.

 

Em todo caso pesquise por regexp

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Motta disse:

Então , normalize a tabela para ter os valores separados.

 

Simplifica o sql.

 

Em todo caso pesquise por regexp

 

certo, irei tentar.

 

mas da maneira que você falou, poderia me dizer como eu salvaria os valores em colunas diferentes?

vamos supor que existem 10 colunas fav, como eu faço, se uma já estiver sendo usada, repassar para a outra?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Citar

salvaria os valores em colunas diferentes?

 

... nâo , linhas diferentes , pelo que entendi você teria uma tabela 

 

favoritos_usuario 

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Motta disse:

 

... nâo , linhas diferentes , pelo que entendi você teria uma tabela 

 

favoritos_usuario 

 

Depois de muita peleja resolvi aqui

 

Fiz como me disse, separei os valores 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Carlos Antoliv
      Então, eh algo até simples, problema de lógica e tudo.  Eu tinha feito, mas o codigo sumiu do nada e nao lembro mais da lógica que eu empregara.
       
      O enredo éh assim
       
      tabela_grupo_produtos
      e
      tabela tabela_produtos
       
      Na tabela_grupo_produtos tem:
      - informatica;
      - eletrodomestico;
      - brinquedos;
       
      na  tabela_produtos tem os podutos que são ligados a tabela de grupo de grupo de produtos:
       
      - informatica->notebook
      - informatica->computador
      - informatica->roteador
       
      - eletrodomestico->geladeira
      - eletrodomestico->microondas
      - eletrodomestico->fogao
       
      - brinquedos->lego
      - brinquedos->boneca
      - brinquedos->carrinhos
       
      O que estou tentando fazer é o seguinte:
       
      - informatica->notebook
                              ->computador
                              ->roteador
       
      - eletrodomestico->geladeira
                                     ->microondas
                                     ->fogao
       
      - brinquedos- >lego
                             -> boneca
                             ->carrinhos
       
       
      Ou seja, mostra na tela pelo "GRUPO" de produtos.
       
      fiz um select no banco....
      e tambem um foreach, mas tem algo que ta errado.
       
      Cheguei até executar dois selects distintos:
      EXEMPLO:

      <!--#################### CÓDIGO SESSÃO ################################ --> 
      <?php     session_start();     echo "Usuario: ". $_SESSION['usuarioNome'];         echo "<br>";     echo "Codigo:  ". $idSessao = $_SESSION['usuarioId']; ?>
      <br>
       
      <a href="sair.php">Sair</a> <!-- #####################FIM CODIGO SESSÃO ############################### --> <?php      $servername = "localhost"; $username = "root"; $password = ""; $database = ""; try {     $conexao2 = new PDO('mysql:host=localhost;dbname=banco', $username, $password);       $conexao2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   } catch(PDOException $e) {       echo 'ERROR: ' . $e->getMessage();   }          $sql2 = "SELECT pdos.fk_usuarios, pdos.nome_prod, pdo.nome_produto, nome_grupo_prod, pdos.foto, pdos.desc_prod, pdos.peso_liq_prod, pdos.qtd_prod, pdos.id_prod, pdos.un_medida     FROM tb_produtos AS pdos     JOIN tb_produto AS pdo ON pdos.nome_prod = pdo.id_produto     JOIN tb_grupo_prod AS gpdo      ON gpdo.id_grupo_prod = pdos.fk_tb_grupo_prod      INNER JOIN usuarios As usu     ON pdos.fk_usuarios = usu.id  ";     $stm2 = $conexao2->prepare($sql2);     $stm2->execute();     $kit3 = $stm2->fetchAll(PDO::FETCH_OBJ); ?> <?php require 'database/conexao.php'; // Recebe o termo de pesquisa se existir $termo = (isset($_GET['termo'])) ? $_GET['termo'] : ''; // Verifica se o termo de pesquisa está vazio, se estiver executa uma consulta completa if (empty($termo)):     $conexao = conexao::getInstance();     $sql = 'SELECT DISTINCT item.fk_tb_produtos, usu.nome, prod.nome_produto, prods.desc_prod, prods.peso_liq_prod, prods.un_medida, item.fk_tb_kit, kit.nome_kit, kit.preco_kit, prods.qtd_prod, kit.id_nome_kit, kit.desc_kit FROM tb_itemprodkit item /* tb_itemprodkit*/ INNER JOIN usuarios usu        /* usuarios*/ ON item.fk_usuarios = usu.id INNER JOIN tb_produtos prods  /* tb_produtos */ ON item.fk_tb_produtos = prods.id_prod INNER JOIN tb_kit kit       /*tb_kit */ ON item.fk_tb_kit = kit.id_nome_kit INNER JOIN tb_produto prod ON prods.nome_prod = prod.id_produto  WHERE fk_usuario = 5 GROUP BY kit.id_nome_kit  ';     $stm = $conexao->prepare($sql);     $stm->execute();     $kit = $stm->fetchAll(PDO::FETCH_OBJ); else:     // Executa uma consulta baseada no termo de pesquisa passado como parâmetro     $conexao = conexao::getInstance();     $sql = 'SELECT * FROM tb_kit WHERE nome_kit LIKE :nome_kit OR desc_kit LIKE :desc_kit';     $stm = $conexao->prepare($sql);     $stm->bindValue(':nome_kit', $termo.'%');     $stm->bindValue(':desc_kit', $termo.'%');     $stm->execute();     $kit = $stm->fetchAll(PDO::FETCH_OBJ); endif; ?> <!DOCTYPE html> <html> <head>     <meta charset="utf-8">     <title>Listagem KITs </title>     <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">     <link rel="stylesheet" type="text/css" href="css/custom.css"> </head> <body>     <div class='container'>         <fieldset>             <!-- Cabeçalho da Listagem -->             <legend><h1>Listagem de Kits</h1></legend>             <!-- Formulário de Pesquisa -->             <form action="" method="get" id='form-contato' class="form-horizontal col-md-10">                 <label class="col-md-2 control-label" for="termo">Pesquisar</label>                 <div class='col-md-7'>                     <input type="text" class="form-control" id="termo" name="termo" placeholder="Infome o Nome ou E-mail">                 </div>                 <button type="submit" class="btn btn-primary">Pesquisar</button>                 <a href='index.php' class="btn btn-primary">Ver Todos</a>             </form>             <!-- Link para página de cadastro -->             <a href='kit_cadastro.php' class="btn btn-success pull-right">Cadastrar Kit</a>             <div class='clearfix'></div>             <?php if(!empty($kit)):?>                 <!-- Tabela de Clientes -->                 <table class="table table-striped">                     <tr class='active'>                         <th>Foto</th>                         <th>produto</th>                         <th>Nome</th>                         <th>Descrição</th>                         <th>Preço</th>                         <th>Ação</th>                     </tr>                     <?php foreach($kit as $kit2):?>                         <tr>                             <td><img src='fotos/<?=$kit2->foto?>' height='40' width='40'></td>                                                                                      <?php foreach($kit3 as $kit4):?>                             <td>                                  <?=$kit4->nome_produto.'<br>'; ?>                                                                                     </td><?php endforeach; ?>                                                                                      <td><?=$kit2->nome_kit?></td>                                 </td>                             <td><?=$kit2->desc_kit?></td>                             <td><?='R$ '.$kit2->preco_kit.',00'?></td>                                                          <td>                                 <a href='kit_editar.php?id_nome_kit=<?=$kit2->id_nome_kit?>' class="btn btn-primary">Editar</a>                                 <a href='javascript:void(0)' class="btn btn-danger link_exclusao" rel="<?=$kit2->id_nome_kit?>">Excluir</a>                             </td>                         </tr>                                                                                                                                                    <?php endforeach;?>                 </table>             <?php else: ?>                 <!-- Mensagem caso não exista clientes ou não encontrado  -->                 <h3 class="text-center text-primary">Não existe Kit cadastrados!</h3>             <?php endif; ?>         </fieldset>     </div>     <script type="text/javascript" src="js/custom.js"></script> </body> </html>  
      ....se alguem puder ajudar...
       
    • Por Joseph Renato
      OLÁ CAROS AMIGOS. PRECISO QUE EM UMA TABELA A PRIMEIRA COLUNA CHAMADA ALUNO FIQUE FIXA. E QUE O RESTO CONTINUE O MESMO.
      SEGUE ABAIXO OS CÓDIGOS:
       
      <!DOCTYPE html>
      <html>
      <title>LISTA DE ALUNO</title>
          <thead>
                              
      <head>
          <meta http-equiv="Content-type" content="text/html; charset=utf-8">
          <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
          <title>LISTA DE ALUNO.</title>
          <link rel="shortcut icon" type="image/png" href="/media/images/favicon.png">
          <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.datatables.net/rss.xml">
          <link rel="stylesheet" type="text/css" href="/media/css/site-examples.css?_=19472395a2969da78c8a4c707e72123a">
          <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
          <style type="text/css" class="init">
          
          tfoot input {
              width: 125%;
              padding: 1px;
              box-sizing: border-box;
          }
          </style>
          <script type="text/javascript" src="/media/js/site.js?_=5e8f232afab336abc1a1b65046a73460"></script>
          <script type="text/javascript" src="/media/js/dynamic.php?comments-page=examples%2Fapi%2Fmulti_filter.html" async></script>
          <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-3.3.1.js"></script>
          <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
          <script type="text/javascript" language="javascript" src="../resources/demo.js"></script>
          <script type="text/javascript" class="init">
          
      $(document).ready(function() {
          // Setup - add a text input to each footer cell
          $('#example tfoot th').each( function () {
              var title = $(this).text();
              $(this).html( '<input type="text" placeholder="procurar'+title+'" />' );
          } );
          // DataTable
          var table = $('#example').DataTable();
          // Apply the search
          table.columns().every( function () {
              var that = this;
              $( 'input', this.footer() ).on( 'keyup change', function () {
                  if ( that.search() !== this.value ) {
                      that
                          .search( this.value )
                          .draw();
                  }
              } );
          } );
      } );

          </script>
      </head>
      <body class="wide comments example">
          <a name="top" id="top"></a>
          <div class="fw-background">
              <div></div>
                      
                      </div>
                  </div>
              </div>
              
                  </div>
              </div>
              <div class="fw-body">
                  <div class="content">
                      
                      </div>
                      <table id="example" class="display" style="width:100%">
                          <thead>
                              <tr>
                          <th>ALUNO</th>
                                              <th>CURSO</th>
                          <th>PERIODO</th>
                          <th>MATERIA</th>
                                              <th>BIMESTRE</th>
                                              <th>NOTAS</th>
                          
                                              
                                              
                                              
                      </tr>
                          </thead>
                          
                          
      </tbody>
      <TR>
      <TD>JORGE</TD>
      <TD>ADMINISTRAÇÃO</TD>
      <TD>NOITE</TD>
      <TD>CONTABILIDADE</TD>
      <TD>SEGUNDO</TD>
      <TD>7</TD>
      <TR>
      <TD>PEDRO</TD>
      <TD>ADMINISTRAÇÃO</TD>
      <TD>MANHÃ</TD>
      <TD>GESTÃO</TD>
      <TD>TERDEIRO</TD>
      <TD>9</TD>
      </TR>

      </tbody>

                          <tfoot>
                              <tr>
                          <th>ALUNO</th>
                                              <th>CURSO</th>
                          <th>PERIODO</th>
                          <th>MATERIA</th>
                                              <th>BIMESTRE</th>
                                              <th>NOTAS</th>
                          
                                              
                                              
                                              </tr>
                          </tfoot>
      <thead>
                          <th>ALUNO</th>
                                              <th>CURSO</th>
                          <th>PERIODO</th>
                          <th>MATERIA</th>
                                              <th>BIMESTRE</th>
                                              <th>NOTAS</th>
                          
                                              
                                              
                                              </tr>
                          </thead>

      <html>

      </html>
    • Por jonata paulino
      Amigo, tenho uma tabela que tem uma coluna com ano e nome
      A coluna nome possui nomes de vários municípios e cada município aparece uma vez em cada ano.
      A coluna ano está organizada de 2011 a 2015.
      Eu queria tirar a média de uma vez só de todos estes municípios e de todos os anos.
      Eu usei o seguinte código.
       
      SELECT codigo, ano, uf, nome,  AVG(cota_fpm), AVG(cota_iof_ouro), AVG(cota_itr), AVG(cota_parte_cfem) 
      FROM economia
      GROUP BY codigo;
       
      Minhas colunas estão como varchar(130), e tem alguns valores da média que estão corretos e outros não.
    • Por otaviinn
      Olá a todos, 
       
      Estou desenvolvendo um script simples, porém me deparei com uma situação que sei que pode ser resolvida através do If, mas acredito que possa existir uma maneira mais simples (e talvez mais correta) de se fazer, é o seguinte:
       
      Com um select simples preciso trazer as colunas Nome, RG,ORGAOEXP, DATAEXP, CPF, DATANASC e o telefone CELULAR do cliente, ai que está o problema, pois a estrutura da tabela encontra-se assim:
      FORMACONTATO1 FORMACONTATO2 FORMACONTATO3 CONTATO1 CONTATO2 CONTATO3 ----------- ------------- -------------- ---------- ----------- ------------ Residencial Celular Comercial 1122443355 11945678910 1122433456  
      Então, eu devo trazer o CONTATO 2 que é o contato correspondente a FORMA DE CONTATO de celular, no sistema estes campos são editaveis, então isso varia de cadastro para cadastro, tem registro que o contato 1 é o celular, em outros o 3 e assim por diante.
       
      Existe alguma forma de trazer somente o contato correspondente a forma de contato CELULAR sem ser pelo If?
       
      Agradeço a atenção e colaboração de todos.
       
    • Por Marcelo Pereira da Costa
      Boa noite
      Gostaria de uma ajuda. Eu tenho uma tabela em que preciso inserir o resultado de um select em um campo, já existente, desta mesma tabela.
       
      - O nome da tabela é projeto.
      = Eu tenho os campos na tabela: Id_servidor, Matricula e Senha.
      - Antes de realizar a inserção eu preciso fazer uma concatenação do Id_servidor  com o campo Matricula truncado, que é o seguinte comando: (SELECT CONCAT(s.Id_servidor, substring(s.Matricula, 1, 3)) FROM projeto s;)
      - E agora preciso inserir o resultado do select descrito acima no campo Senha da mesma tabela chamada projeto.
      Como consigo fazer isso?
      Obrigado desde já.
×

Informação importante

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