Ir para conteúdo
JurisCode

Contar quantos caracteres até uma determinada palavra e imprimir apenas os caracteres a partir dela, contar quantos caracteres depois e imprimir só até ela

Recommended Posts

Olá, amigos programadores

 

Eu tenho uma célula da minha base de dados com siglas representando cidades constantes em uma rota.

gu tr fr ip cs pe um cr ta ci ju dc ab pa ma sa ma mg ar ro ca lo

no caso do exemplo a rota seria: "guaíra, terra roxa, francisco alves, iporã, cafezal do sul, perobal, umuarama, cruzeiro d'oeste, tapejara, cianorte, jussara, dr. camargo, água boa, paiçandu, maringá, sarandi, marialva, mandaguari, arapongas, rolândia, cambé e londrina".

 

no entanto, eu vou colocar na página duas caixas de seleção. A primeira para selecionar a cidade de origem e a outra para selecionar a cidade de destino.

Daí vai fazer uma busca nesses itinerários se tem algum itinerário que passa por essas duas cidades.

 

Até aí tudo bem, bem facinho, vou usar o LIKE para origem e destino, o problema é que eu gostaria de criar uma variável apenas com as siglas das cidades, a partir da cidade de origem até o destino.

 

Por exemplo, eu seleciono de UM até MA (umuarama a maringá) em vez de exibir todo o conteúdo da célula que tenha as duas cidades pesquisada (a rota compatível), mostrar apenas a partir da cidade de início, até a cidade de fim selecionadas.

 

Eu sei o procedimento, mas não sei como implementar:

 

Eu acho que eu deveria salvar todo o conteúdo dentro de uma variável, contar quantos caracteres há do início até a cidade de origem e exibir apenas o resultado a partir dessa cidade. Depois, contar quantos caracteres há da cidade de destino até o final e exibir apenas o resultado até essa.

 

Eu sei fazer isso em asp, mas estou migrando meus scripts para o PHP, daí eu gostaria de saber como faz isso em PHP.

 

Desde já, obrigadão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu consegui, mas não estou entendendo:

 

$rotatotal = "gu tr fr ip cs pe um cr ta ci ju dc ab pa ma sa ma mg ar ro ca lo";
$positioni = mb_strpos($rotatotal, 'ip');
$positionf = mb_strpos($rotatotal, 'ca');
$totalstr = mb_strlen($rotatotal);
$rotaescol = mb_substr($rotatotal, $positioni, $positionf - $positioni + 2);
echo $rotaescol;

o + 2 eu entendi porque não ele pega a posição em que o positionf começa e não termina, mas por que eu tive que subtrair a positioni (inicial) da positionf (final)? O tutorial que eu assisti disse que essa função pegaria a posição na rotatotal e não reiniciaria a contagem.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por lucianfpaula
      Galera tenha a seguinte duvida, tenho 3 tabelas onde estou trazendo os dados e preciso fazer um count em uma delas
       
      SELECT *  FROM tabela1 AS t1  INNER JOIN tabela2 AS t2 ON t1.idt1 = t2.idt2 INNER JOIN tabela3 AS t3 ON t3.idt3 = t1.idt1  
      a duvida é: quero manter o SELECT * mas também preciso de COUNT(t3.idT3)
      não sei se é possível fazer isso, mas gostaria de ter certeza antes de focar em outra solução
      desde já muito grato.
    • Por lezão
      Boa noite!
      Td bem com vcs?
      Estou usando esse código mas não retorna nada!
       
      Alguém pode me ajudar ?
       
       
      <?php $sql = mysqli_query($link, "SELECT ver_post, COUNT(ver_post) AS Quantidade FROM tab_comentarios where ver_post = 'red' Group by ver_post"); ?> Variável
      <?php echo $Quantidade; ?>  
    • Por marsolim
      galera tô tentando fazer uma classificação aqui junto com um sum e não to conseguindo. até o momento consigo gerar a tabela de desempenho assim
       
         $sql = "SELECT *,SUM(pontos_total) AS totais FROM desempenho INNER JOIN usuarios ON usuarios.id = desempenho.id_usuario GROUP BY id_usuario ORDER BY totais DESC";     if($res = mysqli_query($con, $sql)){         while($row = mysqli_fetch_assoc($res)){             echo $row["nome"] . " - " . $row["totais"] . "<br>";         }     }  
      ok isso me gera uma tabela como segue
       
      jean claude van damme - 152
      bruna marquezine - 149
      bruce willis - 131
      ...
       
      o que não to conseguindo é incluir um contagem pra saber em que posição a pessoa está por exemplo se a bruna marquezine logar no sistema deve aparecer pra ela
       
      Sua pontuação: 149
      Sua posição: 2
       
      to tentando incluir uma clausula pra contar os totais maiores ou iguais ao do usuário logado e assim a quantidade de registros que retornar é a posição da pessoa.
       
      detalhe pertinente: totais é uma soma de vários subtotais espalhados pela tabela em nome de cada usuario tipo
       
      nesse cenario temos como soma dos pontos totais
       
      1 - 8
      2 - 13
      3 - 3
      4 - 7
      5 - 2
       
      alguma ideia de como posso pegar a posição apenas alterando o sql?
    • Por Alberto Nascimento
      Tenho o seguinte código que faz a consulta e contagem de todos os campos de uma tabela e retorna a quantidade através de ECHO.
      Porém preciso que tenha dois critérios a seguir para então contar:
      <?php $servidor = ""; $usuario = ""; $senha = ""; $dbname = ""; $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); if(!conn) { echo "Error"; } $sql="SELECT count(id) AS total FROM tbl_test"; $result=mysqli_query($conn,$sql); $values=mysqli_fetch_assoc($result); $num_rows=$values['total']; echo $num_rows; ?> Só que preciso que primeiro encontre todos os registros que tiverem o nome "ALBERTO" no campo NOME e logo em seguida faça a contagem dos registros de acordo com o campo SITUACAO .
      Ficaria desta forma a ser exibido:
       
       
      Obrigado !!
    • Por biakelly
      Oi, criei uma função para contar uma coluna específica:
       
      function contando-usuarios() { global $conn, $db-nativas; $sql = "SELECT COUNT(*) FROM $tabela-nativa WHERE ID = '" . ['$contaenfermeiras'] . "'"; if ($result = mysqli_query($conn, $sql)) { if (mysqli_num_rows($result) >= 1) { $row = mysqli_fetch_row($result); return $row['$contaenfermeiras']; } } }  
       
      Ao chamar no index desta forma:
       
      <?php echo ($contaenfermeiras);?>  
      Gera erro:  Notice: Undefined variable: contaenfermeiras in C:\xampp\htdocs\hosp\index.php on line 5
       
      A linha 5 é a chamada: <?php echo ($contaenfermeiras);?>

      To fazendo algo errado? Como chamo corretamente?
       
×

Informação importante

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