Ir para conteúdo

Arquivado

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

flavialieggio

Contando string´s

Recommended Posts

Olá pessoal

 

Estou montando um sistema para gerar formulario, juntamente com meu amigo Davi,

 

Temos quatro partes

 

CADASTRO DE QUESTOES - INSERÇÃO DE TITULO - ADICIONANDO AS QUESTOES - VISUALIZAÇÃO

 

no cadastro de questoes eu posso gerar questoes de campo text, combo, check...

 

para gravar checkbox ele digita o texto / texto /

 

essa barra seria o limitador

 

quando na parte de visualização puxo esses dados para montar visualmente o check por exemplo, quero puxar essas opções tirando a barra.. sei que temos que montar uma função, mas estamos perdidos.. o que usamos para esse caso?

 

eu quero que ele leia a opção ate a barra e depois dela ele começa a montar outra opção

 

Mais ou menos isso...rsrss.... :blink:

 

Precisamos de ajuda e orientação http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

no aguardo...

 

 

Flávia

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar a função substr e a funcao strpos.

 

a Funcao substr retorna apenas uma parte da string

e a funcao strpos captura a posicao de um caracter numa string informada

 

assim você pode bolar uma forma de capturar a posicao da / e retira-lá da string.

 

Se não funcionar, daqui a pouco eu posto a função pra você, mas tenta aí.

 

valeu, t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Higor

 

Nos conseguimos montar um script porem nao esta 100%

 

Veja so:

 

//ARQUIVO DE CONEXAO

function resumo($string,$chars) {
		if (strlen($string) > $chars) {
				$var='0';
				while($var == '0'){
						if( (substr($string,$chars,1)) == ' '){
								$var='1';
						} else{
								$chars++;
						}  
				}
		}
		return substr($string,0,$chars);
}

	$query = "SELECT  relacao from questoes where cod_questao = 13";
	$resultado = mysql_query($query,$conexao);
	$linhas = mysql_fetch_array($resultado);

$texto = $linhas[relacao];

$resultado_funcao = resumo($texto,5);
echo $resultado_funcao;	

//OUTRA LOGICA QUE O DAVI MONTOU.. MAS ESTAMOS USANDO A DE CIMA MESMO.. VE AI..

echo($linha[relacao]);
if ($linhas[relacao])
	{
		
		$conta = strlen($texto);
		for ($carac = 0; $carac < $conta; $carac++)
			{
			$letra = $texto[$carac];
			if ($carac != '/' )
			{
			$palavra = $palavra + $carac;
			}else{
			$palavra = '';
			}	
		}
	}	

echo $palavra;

ta faltando colocar exatamente essa função so strpos que nao estou entendendo bem.. agradeço a ajuda e estou no aguardo

[]´s

Flávia

Compartilhar este post


Link para o post
Compartilhar em outros sites

...essa barra seria o limitador

eu quero que ele leia a opção ate a barra e depois dela ele começa a montar outra opção

Você pode dar um explode("/"). Com isso você vai ter um Array com seus ítens separados pela barra.

 

<?php
	$final = explode("/", "texto1/texto2/texto3");
?>

Ai, com um foreach() você varre o Array e monta o conteúdo como você quiser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá Flávia, desculpe a demora.

fiz algumas modificações no script.

 

<?php

//ARQUIVO DE CONEXAO

 

 

function resumo($string){

$i = 0;

while(trim($string)!=""){

 

 

// vetor de posicao i recebe a aparte da string qye está entre as barras

$valor = substr($string, 0, strpos($string, "/"));

 

//só atribui se o valor for diferente de vazio

if(trim($valor!="")){

$vetor[$i] = $valor;

$i++;

}

 

//retira as barras que envolviam o pedaco de string que agora está em $vetor[$i]

$string = substr($string, (strpos($string, "/")+1), (strlen($string) -1 ));

 

 

}

return $vetor;

 

}

 

 

/*$query = "SELECT relacao from questoes where cod_questao = 13";

$resultado = mysql_query($query,$conexao);

$linhas = mysql_fetch_array($resultado);

 

$texto = $linhas[relacao];*/

 

$texto="/123/456/789/";

 

$resultado = resumo($texto);

 

//para exibir cada parte pode se usar o foreach

print"<br>Exibe com o foreach<br>";

foreach($resultado as $valor){

print $valor."<br>";

}

 

// ou acessar os indices do vetor

//captura o numero de indices do vetor

$i = sizeof($resultado);

$i--;

print"<br>Exibe acessando pelo indice:<br>";

while($i >=0){

print "Valor:".$resultado[$i]." .:. Indice: $i <br>";

$i--;

}

 

 

?>

 

creio que é isso, qualquer coisa é só postar novamente.

t+,

Abraço!

 

O script do Mário também é uma ótima idéia.

 

Acho interessante você utilizar ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera

desculpe a demora, mas estou vendo as soluções e estamos testando agora.. qualquer coisa eu posto!!!

 

Você pode dar um explode("/"). Com isso você vai ter um Array com seus ítens separados pela barra.

So uma duvida o EXPLODE que esta se referindo eu poderia atribuir ao codigo que o Davi montou?? ou seria baseado na função mesmo??

 

 

 

MUITO obrigada mesmo pelo suporte maravilhoso!

Flavia

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode fazer direto, sem precisar de uma função,

 

você pode simplesmente captuar o valor do banco e atribuir à uma variável

 

depois uma outra variável recebe o explode.

 

Ex:

<?php

$query = "SELECT relacao from questoes where cod_questao = 13";

$resultado = mysql_query($query,$conexao);

$linhas = mysql_fetch_array($resultado);

 

$texto = $linhas[relacao];

 

$array = explode("/", $texto);

?>

 

t+

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.