Jump to content
Rui PG

Como selecionar apenas os registros que estão entre aspa

Recommended Posts

Boa tarde, Pessoal"

 

Sou iniciante em SQL, em uma tabela do nosso BD tempos um campo que possui o registro com as informações do paciente concatenado com uma serie de valores que não precisamos.

Como eu faço, para montar uma select para extrair desse registro apenas o que está entre aspas?

 

O meu registro está assim:

a:28:{i:18;s:13:"Sérgio silva";i:19;s:11:"1199900001";i:20;s:0:"n/i";i:21;s:0:"n/i";i:23;s:15:"Amil One Health";i:24;s:0:"n/i";i:27;s:0:"n/i";i:31;s:1:"2";i:32;s:0:"n/i";i:33;s:1:"2";i:34;s:0:;}

 

Eu preciso dele assim:

"Sérgio silva";"1199900001";"n/i";"n/i";"Amil One Health";"n/i";"n/i";"2";"n/i";"2";

 

Observação, esses monte de valores a:28: ...etc... eles mudam, não são valores fixos, se fossem até usaria o replace, mas são vários valores.

 

Depois que eu chegar nessa mineração: "Sérgio silva";"1199900001";"n/i";"n/i";"Amil One Health";"n/i";"n/i";"2";"n/i";"2";

Como eu faço para alocar cada valor em campo campo qualquer, pode ser uma tabela temporária, tipo assim:

 

|nome           |campo 1        |Campo 2 |Campo 3 |Campo 4               |Campo  5 | .....

|Sérgio silva|1199900001|n/i              |n/i              |Amil One Health|n/i               |n/i|2|n/i|2| .....

 

Muito obrigado amigos

 

 

 

 

 

 

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 joagostini
      Olá, sou iniciante, e estou fazendo, como exercício, o jogo da velha. 'Desenvolvi' uma rotina de escolha de nível do jogo (serão 3 níveis) que deve aguardar a escolha do usuário para o programa prosseguir. Mas acho que não entendi direito como o javascript funciona, pois o que fiz não funciona e não encontrei uma solução (talvez não saíba como pesquisar corretamente o assunto na web).

      O começo do HTML (que é pouco) onde está um select para escolha do nível é este:
      <body>     <div id="dvmenu">         <button onclick="iniciar()">Iniciar Jogo</button>         <p><br></p>         <div id="dvQuemComeca">             <label for="nivel">Escolha o nivel:</label>             <select id="nivel" onChange='atualiza()'>                 <option value=0 selected>Escolha um nível</option>                 <option value=1>Nível 1 - Brincadeira</option>                 <option value=2>Nivel 2 - Surpresa</option>                 <option value=3>Nível 3 - Desafio</option>             </select>         </div>         <div id="jogador" class="jogador"></div>         <div id="vencedor" class="jogador"></div>     </div>  
      O código JS é este:
      //INÍCIO VEM DE LOAD function iniciar() {     casela = document.querySelectorAll('div[id^="p"]');     for (let cas of casela) {         cas.innerHTML = '';     }     for (let i = 0; i < 9; i++){        tab = tab;     }     console.log(tab);     nivel = 0;      msg = '';     qtosLancesJog = 0;     sorteiaJogador();     //até aqui funcionou direito } //-------------------------------------------------------------------- //ESCOLHA DO NÍVEL DO JOGO function atualiza(){     let selecao = document.querySelector('#nivel');     let opcao = selecao.options[selecao.selectedIndex];     return opcao.value;    }   //--------------------------------------------------------------------   //SORTEIA QUEM VAI COMEÇAR JOGANDO //função para definir o jogador que inicia o tab function sorteiaJogador() {//funcionou direito     let quemComeca = parseInt(Math.floor(Math.random() * 2));     if (quemComeca == 0) {         msg = 'Computador';         //setTimeout(lanceCpu, 2000);//dá um intervalo antes do computador realizar o 1 lance         lanceCpu();     } else msg = 'Humano';//neste caso a rotina espera que o jogador clique no tabuleiro, qdo roda a função lancetab(pos)         lanceHumano();     document.querySelector('#jogador').innerHTML = `<br>O ${msg} começa!`; } //--------------------------------------------------------------------   //ESCOLHA RANDÔMICA, NIVEL = 1, Da POSIÇÃO DO LANCE DA CPU NO tabULEIRO function jogouCpu(){//funcionou direito //nível 1 modo randômico pos = Math.floor(Math.random() * 9); return pos; }   //função humana function lanceHumano(){     console.log('Estou na função humana');     do {         nivel = atualiza();         console.log(nivel);     } while (nivel === 0);     console.log(nivel + ' passei direto'); }  
      O problema está nesse do...while da function lanceHumano(). Segundo entendi, ele prosseguiria apenas quando nivel!== 0, caso contrário, ficaria 'preso' até o momento que o usuário escolhesse uma das opções. Pelo HTML percebesse que setei o select para value=0. Mas ele nem se dá ao trabalho de esperar um miléssimo de segundo, segue em frente com o valor que tiver, no caso 0. O while  não tem efeito. Essa minha perspectiva está errada? Se sim, o que fazer? (paradigma funcional, await?) Obrigado.
      P.S.. No código tem uns conole.logs que servem watch-dogs para ajudar a entender por onde vão as rotinas.
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
    • By Thiago Btos
      Boa tarde pessoal.
       
      Estou travado em uma parte do select do qual preciso somar os valores de todos os registros da coluna, e usa-lo como base de calculo para outra coluna
       
      SELECT PRODUTO, HORAS, QTDE, VARIACAO FROM DUAL
       
      Meu select está retornando algo assim:
       
      PRODUTO | HORAS | QTDE | VARIACAO
            A           |    2        |    20    |      5
            B           |    6        |    25    |      3
            C           |    5        |    70    |      9
            D           |    8        |    30    |      2
      --------------------------------------------------------
      Total           |    21     |  145    |      
       
      Preciso criar uma nova coluna com a formula (Total Qtde / Total horas) * variação ficando assim:
      PRODUTO | HORAS | QTDE | VARIACAO | CONTA
            A           |    2        |    20    |      5             |  34.52
            B           |    6        |    25    |      3             |  20.71
            C           |    5        |    70    |      9             |  62.14
            D           |    8        |    30    |      2             |  13.80
       
       
      A forma que estou tentando fazer é via subselect, mas ele não agrupa todas as linhas, e somente o registro da linha atual.
      SELECT PRODUTO, HORAS, QTDE, VARIACAO,
          (SELECT (SUM(QTDE) / SUM(HORAS)) * VARIACAO) AS CONTA
      FROM DUAL
       
      Dessa forma me retorna o seguinte resultado, como se estive calculando somente a linha atual e não toda a coluna.
      PRODUTO | HORAS | QTDE | VARIACAO | CONTA
            A           |    2        |    20    |      5             |  50
            B           |    6        |    25    |      3             |  12.5
            C           |    5        |    70    |      9             |  126
            D           |    8        |    30    |      2             |  7.5
       
       
       
      Espero que eu tenha conseguido explicar minha necessidade de forma que de para entender.
       
    • By biza
      Viva pessoal, 
      Estou com um problema na execução de um filtro aos dados vindos da base de dados, sera que alguém me pode ajudar, os dados estão vindo para a pagina através do método $_POST,
      que são seleccionados através do carregamento de uma dropbox chamada 'select-segment', desta forma se o utilizador apertar o botão 'action' ele executa o filtro caso não aperte ele executa a seleção sem filtros, será que alguém me pode ajudar...
      O erro devolvido é o seguinte:
      Fatal error::  Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /Applications/MAMP/htdocs/cargeWebsite/carList.php:46
      Stack trace:
      #0 /Applications/MAMP/htdocs/cargeWebsite/carList.php(46): PDOStatement->execute()
      #1 /Applications/MAMP/htdocs/cargeWebsite/index.php(155): include('/Applications/M...')
      #2 {main}
        thrown in 
      $query .='SELECT * FROM tbl_vehicle AS v INNER JOIN tbl_brands AS b ON v.brand_id = b.id_brand INNER JOIN tbl_images AS i ON v.id_vehicle = i.vehicle_id INNER JOIN tbl_fuel AS f ON v.fuel_id = f.id_fuel WHERE v.active = :active'; if(isset($_POST['action'])){ if(isset($_POST['select-segment']) && $_POST['select-segment']!=''){ $segment_filter = $_POST['select-segment']; $query.= 'AND segment_id IN ("'.$segment_filter.'")'; } $query .='ORDER BY v.last_inser ASC'; }else{ $query .='ORDER BY v.last_inser ASC'; } if($_POST['lenght'] = -1){ $query_1 = 'LIMIT :inicio, :limite'; } $dbh = createPDO(); $statement = $dbh->prepare($query); $statement->bindValue(':active',$intermedio); $statement->execute(); $number_filter_row = $statement->rowCount(); $statement = $dbh->prepare($query . $query_1); $statement->bindValue(':inicio',(int)$init, PDO::PARAM_INT); $statement->bindValue(':limite',(int)$limite, PDO::PARAM_INT); $statement->execute(); foreach ($result as $row){ }  
    • By Kefatif
      Prezados, boa tarde.
       
      Estou com uma dúvida:
       
      Estou precisando trazer dados do banco para uma tela de edição de cadastro, até aí tudo bem consegui fazer para os input através do código abaixo:
       
      <label style="width:16%;margin-left: 2%;">Data de Início<br> <input type="date" value="<?php echo $row["DATA_DISPENSACAO"] ?>" class="form-control" style="width:100%;"> </label>  
      Mas o meu select já traz o controle de peso do banco, eu gostaria que além dele trazer esses pesos que traga o salvo no cadastro de uma pessoa para visualização e edição.
       
      Segue abaixo o código do select como está:
       
      <label style="width:15%">Peso<b style="color:red">*</b><br> <select name="peso" class="form-control" required style="width:100%" value="<?php echo $row["DATA_TESTE"] ?>"> <option value="">Selecione</option> <?php $sqlpeso = "select distinct PESO from TESTE where ID_ESQUEMA = ".$row["ID_ESQUEMA"]; $resultpeso = mysqli_query($con, $sqlpeso); while ($rowpeso= mysqli_fetch_array($resultpeso)){ ?> <option value="<?php echo utf8_encode($rowpeso["PESO"]);?>" ><?php echo utf8_encode($rowpeso["PESO"]); ?></option> <?php } ?> </select> </label>  
      Meu banco é MYSQL.
       
      Agradeço desde já a todos pela ajuda.
       
      Abraço!
    • By Kefatif
      Prezados, boa tarde.
       
      Preciso de uma ajuda, tenho um select onde o usuário vai poder selecionar dentre os valores "1" e "2", mas gostaria que quando ele selecionasse o valor 2 fosse enviado um alerta de confirmação, estou tentando fazer através do evento blur, mas não estou sabendo fazer a comparação. Seria possível chamar o evento apenas se o valor selecionado for 2?
       
      Segue meu código teste abaixo.
       
      <!DOCTYPE html> <html> <head> <title>Teste</title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script> <script type="text/javascript"> $(function(){ //inserir os códigos aqui $("#fase").blur(function(){ alert("O input perdeu o foco."); }); }); </script> </head> <body> <label style="width:15%">Fase<b style="color:red">*</b><br> <select name="fase" id="fase" class="form-control" required style="width:100%" > <option value="1">1</option> <option value="2">2</option> </select> </label> <label style="width:15%">teste<b style="color:red">*</b><br> <select name="teste" class="form-control" required style="width:100%" > <option value="">Selecione</option> <option value="SIM">SIM</option> <option value="NÃO">NÃO</option> </select> </label> </body> </html>  
      Agradeço desde já.
       
      Abs.
×

Important Information

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