Jump to content


Felipe Pena

Member Since 09/04/2004
Offline Last Active 25/06/2013, 10:07
*****

#998850 Consulta Pelo Tamanho Do Registro..

Posted by Felipe Pena on 30/04/2010, 18:40

É só colocar no WHERE: LENGTH(nome) > 10
  • likes this


#996853 [Duvida] Mais De Uma Tabela!

Posted by Felipe Pena on 19/03/2010, 21:14

As tabelas possuem os mesmos campos? Na mesma ordem e tipo? Talvez você esteja querendo usar UNION... Dê uma olhada na doc. a respeito disso.


#995885 Dar Um Replace Em Uma Palavra Em Todos Os Registros De Uma Coluna

Posted by Felipe Pena on 03/03/2010, 20:25

É só usar a função REPLACE().

UPDATE tabela
  SET campo = REPLACE(campo, 'http://www.urlvelha.com.br/uploads/', 'http://www.urlnova.com.br/uploads/')
  WHERE campo LIKE '%http://www.urlvelha.com.br/uploads/%'



#995603 Duvida Com Function

Posted by Felipe Pena on 26/02/2010, 21:32

Detalhe, observe que lá no IF eu deixei o '$dados = mysql_fetch_assoc($exe);', mas $dados não é usado... Não sei quais campos você usaria ali do SELECT, quando encontra o ID... Se não for usada na do SELECT, você nem precisa chamar o mysql_fetch_assoc().


#995596 Duvida Com Function

Posted by Felipe Pena on 26/02/2010, 19:35

Se você cria uma função como:

function exibeFormPagina($id) {
	$sql = sprintf("SELECT * FROM pagina WHERE id= %d", $id);
	$exe = mysql_query($sql);

	if (mysql_num_rows($exe)) {
		$dados = mysql_fetch_assoc($exe);
		
		return 'O seu id é '. $id;
	}
	return '';
}

Você pode chamar a função com:
$id = isset($_GET['id']) ? $_GET['id'] : 0;
$texto = exibeFormPagina($id);

E então pode imprimir a variável $texto onde você quer que apareça o retorno da função.

O link no caso teria que ter o id na querystring. (e.g. index.php?id=1111)


#995478 Duvida Com Er

Posted by Felipe Pena on 25/02/2010, 23:36

Faça uma pequena alteração, troque para:
/public\s+(\w+(?:\s*:=\s*[^,]+)?(?:\s*,\s*\w+(?:\s*:=\s*[^,]+)?)*)/

Segue a explicação:
public\s+ => a palavra "public" seguida de 1 ou mais espaços
\w+(?:\s*:=\s*[^,]+)? => letra/número/underline (que é representado por \w) seguido opcionalmente de ':=', aceitando opcionalmente espaços entre ele, o [^,]+ serve para indicar que aceita qualquer coisa diferente de ',' (a intenção foi apenas casar um possível valor, mas isto irá dar problema se o valor tiver vírgula (num texto, ou chamada de funcao, por exemplo)... Se tiver problema para você, basta dizer que a gente pode usar algo menos abrangente.
(?:,\s*\w+(?:\s*:=\ s*[^,]+)?)*) => repetição da regra descrita acima quantas vezes for possível, isto é, para repetir a mesma regra para a especificação do nome da variável ou atribuição na lista.


#995470 Consegui Desenvolver Uma Lógica...

Posted by Felipe Pena on 25/02/2010, 21:17

Pois é, até mesmo porque o MySQL tem um tipo de dados (SET) que usa tal forma de listar valores, e provê funções e truques para manuseá-los. http://dev.mysql.com...t-datatype.html


#995469 Duvida Com Er

Posted by Felipe Pena on 25/02/2010, 21:04

O que você tem que fazer é pegar o conjunto de valores, e daí sim fazer um split pela vírgula.

Exemplo:

preg_match("/public\s+(\w+(?:\s*:=\s*)?[^,]+(?:,\s*\w+(?:\s*:=\s*[^,]+)?)*)/", "public ca:=1,q,e,q:=0", $m);
print_r(preg_split("/\s*,\s*/", $m[1]));



#989412 Aglutinar Registros

Posted by Felipe Pena on 08/12/2009, 12:57

Usando MySQL você consegue ajuntar os valores de um campo de um agrupamento com GROUP_CONCAT() [1].

Exemplo:

SELECT nome, GROUP_CONCAT(valor_divida SEPARATOR '|') valor_divida
  FROM tabela
  GROUP BY nome

  • http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat



#989097 Duvida Sobre O Include

Posted by Felipe Pena on 05/12/2009, 15:40

Você está acessando com index.php?pagina=contato ?


#989073 [Resolvido] 'Loop' Sem 'Do' Erro

Posted by Felipe Pena on 05/12/2009, 13:24

Você está usando 'else if', não devia ser 'elseif' ?


#989067 Problema Com Sessions E Classes

Posted by Felipe Pena on 05/12/2009, 12:56

Aqui está um teste simples:

<?php

class teste {
	private $_nome;
	
	public function __construct($nome) {
		$this->_nome = $nome;
	}
	
	public function getNome() {
		return $this->_nome;
	}
}

session_start();

if (isset($_SESSION['user'])) {
	var_dump($_SESSION['user']->getNome());
	unset($_SESSION['user']);	
} else {
	$_SESSION['user'] = new teste('Felipe');
}


A primeira vez que visualizar o arquivo com este código ele irá guardar o objeto na sessão, ao fazer o refresh ele irá recuperar o valor da propriedade privada _nome com o método getNome() e irá destruir o objeto. É isto que você deseja realizar?

Vale lembrar que a declaração da classe deve estar visível quando você tentar acessar o objeto que esta na sessão.

Mais informações: http://docs.php.net/...rialization.php


#988845 [Resolvido] Problemas Com Expressão Regular

Posted by Felipe Pena on 03/12/2009, 18:09

Está faltando os delimitadores.

Teria que ficar, por exemplo:

/([0-9]{2})<img src='http://forum.wmonline.com.br/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />[0-9]{2})/

Obs.: Nas expressões regulares que vão na biblioteca PCRE, precisam de delimitadores, pelo fato dessa extensão tentar prover compatibilidade com Regex do Perl. Os delimitadores podem ser qualquer caracteres não alfanuméricos. Veja na documentção.

Há outras maneiras de fazer isso, uma que seria legal, sabendo já que a string está no formato adequado, é usar list() + explode().

list($hora, $minutos) = explode(':', $str);



#988789 Conversão De Campos Numerico Em Data

Posted by Felipe Pena on 03/12/2009, 14:06

Ao invés de:

(`Data Inicio`)+(`Dias`)-1

Use:

`Data Inicio` + INTERVAL Dias-1 DAY



#988680 Busca Por Tags

Posted by Felipe Pena on 02/12/2009, 21:35

Se você quer que encontre todas as tags para satisfazer a pesquisa, então você precisa adicionar ao WHERE da query principal uma subquery para verificar se a foto tem cada uma tag:

EXISTS (SELECT 1 FROM tags WHERE id_foto = fotos.id AND tag = 'TAG')

Se for para encontrar o que tem no mínimo 1 tag, fica simples.
Você pode separar cada uma com uma vírgula, e adicionar como visto abaixo, como parâmetro para FIND_IN_SET().

SELECT * FROM fotos WHERE EXISTS (SELECT 1 FROM tags WHERE id_foto = fotos.id AND FIND_IN_SET(tag, 'TAG1,TAG2'))





IPB Skin By Virteq