Jump to content


Fabio Penna

Member Since 11/07/2008
Offline Last Active 31/08/2012, 11:36
-----

Posts I've Made

In Topic: Marquee Dinâmico

25/06/2009, 23:55

<style type="text/css">  

#caixa{

width:100%;

overflow:hidden;

}

#marquee{

width:100%;

}

</style>



<div id="caixa" onmouseout="playM();" onmouseover="stopM();">

	<div id="Marquee">

	  CONTEUDO DINAMICO AQUI

</div>

  </div>

  &lt;script language="javascript">

	 alturaPagina = document.getElementById('tabela').offsetHeight;

	 alturaTabela = document.getElementById('caixa').style.height = alturaPagina;

  </script>

  

  &lt;script type="text/javascript">

//<![CDATA[

var Rollar = "sim";/*Não Altere faz parte do EFEITO*/

var tipo = "top";/*Altere para usar as opções LEFT, RIGHT, TOP e DOWN*/

var roll = 0;/*Não Altere faz parte do EFEITO*/

var tmp = 40;/*Defina a velocidade aqui*/



function Duplicar(){

	var Marquee = document.getElementById("Marquee");

	Cont = Marquee.innerHTML;

	if (tipo=="left" || tipo=="right"){

		IDA = "<div style=\"float:left; position:relative;margin-left:-"+Marquee.clientWidth+";width:"+Marquee.clientWidth+"; height:"+Marquee.clientHeight+";\">"+Cont+"</div>";

		IDB = "<div style=\"float:right; position:relative;margin-right:-"+Marquee.clientWidth+";width:"+Marquee.clientWidth+"; height:"+Marquee.clientHeight+";\">"+Cont+"</div>";

		IDC = IDA + IDB + Cont;

	}

	if(tipo=="top" || tipo=="down"){

		IDA = "<div style=\"float:left; position:relative;margin-top:-"+Marquee.clientHeight+";width:"+Marquee.clientWidth+"; height:"+Marquee.clientHeight+";\">"+Cont+"</div>";

		IDB = "<div style=\"float:left; position:relative;margin-bottom:-"+Marquee.clientHeight+";width:"+Marquee.clientWidth+"; height:"+Marquee.clientHeight+";\">"+Cont+"</div>";

		IDC = IDA + Cont + IDB;

	}

	Marquee.innerHTML = IDC;

}

function Fmarquee(){

	var Marquee = document.getElementById("Marquee");

	var Caixa = document.getElementById("caixa");



if(tipo=="left" || tipo=="right"){

	var Altura = Caixa.clientWidth;

}else if(tipo=="down" || tipo=="top"){

	var Altura = Caixa.clientHeight;

}



	roll++;



	if(Altura==roll){

		roll = (roll*-1);

	}



	if(tipo == "top"){

		Marquee.style.marginTop = (roll*-1)+"px";

	} else if (tipo == "down"){

		Marquee.style.marginTop = roll+"px";

	} else if (tipo == "left"){

		Marquee.style.marginLeft = (roll*-1)+"px";

	} else if (tipo == "right"){

		Marquee.style.marginLeft = roll+"px";

	}



	if(Rollar == "sim"){

	   setTimeout("Fmarquee()",tmp);

	}

}

function playM(){

	Rollar = "sim";

	Fmarquee();

}



function stopM(){

	Rollar = "não";

}



window.onload = function(){

	Rollar = "sim";

	Fmarquee();

	Duplicar();

}

//]]>

</script>

In Topic: Tempo Médio

03/09/2008, 12:07

$sel_ope_tma = mysql_query("SELECT TIME_FORMAT((SUM(Tempo)/COUNT(usuario)), '%H:%i:%s') AS quant FROM base.tabela WHERE oferta = 'valor'", $db);

$tot_ope_tma = mysql_result($sel_ope_tma,0);

In Topic: Como Contar E Mostrar 10 Campos Com Mais Valores Iguais

12/07/2008, 11:41

O problema que minha estrutura não tem como fazer por registros, pois são laudos cadastrados constantemente, e todos utilizam os mesmos campos, por isso perciso de todas estas colunas distintas.

Tem sim... é só criar uma tabela auxiliar com id_pai, valor e identificador. Pronto.... daí COUNT resolveria!

Estou tentando alguma coisa tipo:
select count(distinct *) from laudos_caminhao where * = 'F'

Bem... isso não dá. E é disso que eu estou falando! Você quer fazer um SELECT "invertido". Se tem como, eu não sei :P
A minha sugestão é levar tudo isso aí para o PHP, colocar em uma array e fazer os cálculos no braço, invertendo a array...
Dava pra fazer isso com STORED PROCEDURE em BD, mas acho que não é a melhor saída, pois o processo seria o mesmo que levar para o PHP.


Entendi!

Um amigo desenvolveu o seguinte código:

$colunas = array();
$query = mysql_query("SELECT * FROM <tabela>");
while ($result = mysql_fetch_assoc($query)) {
foreach ($result as $coluna=>$valor) {
if (!isset($colunas[$coluna]))
$colunas[$coluna] = $valor;
else
$colunas[$coluna] .= $valor;
}
}
/*
echo "<pre>";
print_r($colunas);
echo "</pre>";
*/

$totais = array();
$buscar = 'F';
foreach ($colunas as $col=>$valores) {
$totais[$col] = substr_count($valores, $buscar);
}
rsort($totais);
$n = 1;
foreach ($totais as $coluna=>$valores) {
echo "A {$n}ª coluna que mais tem '{$buscar}' é a coluna {$coluna}";
if ($n++ > 10)
break;
}

Ele está me dando o seguinte resultado:

A 1ª coluna que mais tem 'F' é a coluna 0
A 2ª coluna que mais tem 'F' é a coluna 1
A 3ª coluna que mais tem 'F' é a coluna 2
A 4ª coluna que mais tem 'F' é a coluna 3
A 5ª coluna que mais tem 'F' é a coluna 4
A 6ª coluna que mais tem 'F' é a coluna 5
A 7ª coluna que mais tem 'F' é a coluna 6
A 8ª coluna que mais tem 'F' é a coluna 7
A 9ª coluna que mais tem 'F' é a coluna 8
A 10ª coluna que mais tem 'F' é a coluna 9
A 11ª coluna que mais tem 'F' é a coluna 10

Não está correto o resultado, mas acho q é o caminho.

Outro detalhe que eu precisava é saber o nome da coluna, e não qual o número dela, se for possível.

Se alguém puder analizar este código e saber o que pode está de errado?

Olá Pessoal, estou utilizando o forum abaixo com este mesmo assunto.

http://forum.imaster...p...=295598&hl=

Obrigado.

______________________________________________________________________________________________________________________

RESOLVIDO

Olá pessoal, agora sim está tudo certo, funcionou perfeitamente!

Um amigo em outro forum me ajudou e chegamos na seguinte conclusão:

O código ficou assim:
<? include("conexao.php"); 

$sql = "
 CREATE TEMPORARY TABLE `g34731_inspeserv`.`contar` (
`Id` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`Campo_F` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `Id` )
) ENGINE = MYISAM 
";

mysql_query($sql) or die (mysql_error());

$rs = mysql_query("SELECT * FROM laudos_caminhao") or die (mysql_error());

while ($L = mysql_fetch_assoc($rs)) {
	foreach($L as $nome => $valor) {
		if ($valor == "F" || $valor == "f") {

			mysql_query("INSERT INTO contar (Campo_F) VALUE ('".$nome."')") or die (mysql_error());

		}
	}
};

$sql = "SELECT Campo_F,COUNT(Id) AS ct FROM contar GROUP BY Campo_F ORDER BY ct DESC LIMIT 0,10";
$rs = mysql_query($sql) or die (mysql_error());

while ($L = mysql_fetch_assoc($rs)) {
	print("A coluna ".$L['Campo_F']." tem ".$L['ct']." \"F\"<br> ");
}
?>


O resultado foi este:
A coluna estabilizador_dianteiro tem 6 "F"
A coluna feixe_molas_dianteiro tem 5 "F"
A coluna freios_dianteiros tem 4 "F"
A coluna freios_traseiros tem 4 "F"
A coluna comotador tem 4 "F"
A coluna motor tem 4 "F"
A coluna parachoque_traseiro tem 3 "F"
A coluna estabilizador_traseiro tem 3 "F"
A coluna estepe tem 3 "F"
A coluna setor_direcao tem 3 "F"

Muito Obrigado amigos.
Abraços!

In Topic: Como Contar E Mostrar 10 Campos Com Mais Valores Iguais

11/07/2008, 16:04

Não quero ser do contra, mas acho que você tem um problema de modelagem.
Se fossem registros ao invés de colunas, seria muito simples!
Com a sua estrutura dá pra fazer, mas vai "pennar" (desculpe :D ) muito mais.


O problema que minha estrutura não tem como fazer por registros, pois são laudos cadastrados constantemente, e todos utilizam os mesmos campos, por isso perciso de todas estas colunas distintas.

Estou tentando alguma coisa tipo:
select count(distinct *) from laudos_caminhao where * = 'F'

Só que não da certo. Alguém sabe como me ajudar a partir disto também?

Obrigado boirock.

In Topic: Como Contar E Mostrar 10 Campos Com Mais Valores Iguais

11/07/2008, 15:34

Pesquisa por SELECT DISTINCT COUNT

;)


Ok, vou pesquisar sobre isso sim, obrigado.

IPB Skin By Virteq