Ir para conteúdo

POWERED BY:

Arquivado

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

biza

igualar campo por id's

Recommended Posts

viva pessoal estou com uma dificuldade aqui num excerto de código talvez vocês me consigam ajudar, pretendo igualar todos os campos de id idêntico mas de diferentes tabelas representando-os como uma lista.

<?php	

$l=0;
$result2 = mysql_query("SELECT instalacoes_id FROM tbl_detalhe_p_i WHERE produto_id=".$_GET['id']);
while( $row2 = mysql_fetch_array($result2)){
	$sport_no = $row2['instalacoes_id'];
	$no[] = $sport_no;
	echo $no[$l]."<br>";
$l++;
	}

$result = mysql_query("SELECT id_instalaServ, instalacoes_Servicos FROM tbl_instalaServ WHERE tipo='CAM' ORDER BY instalacoes_Servicos ASC");
		$l=0;
		while($row = mysql_fetch_array($result)){
		echo' <div id="certo">'.$row[1].'</div>';
		$result1 = mysql_query("SELECT id_instalacoes, instalacoes FROM tbl_instalacoes WHERE instalaServ_id ='$row[0]' ORDER BY instalacoes ASC");
		echo'<div id="dimention">';
		
		while( $row1 = mysql_fetch_array($result1)){
		echo $no[$l]."<div class='control-depose'>";
		if($no[$l]==$row1[0]){echo "checked='checked'";} echo"
		{$row1['instalacoes']}-{$row1[0]}-{$no[$l]}
		</div>";
		$l++;
		}
		echo"</div>";
}
									?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem SELECT dentro de loop, o que gera o famoso Problema do N+1. Seu script pode até funcionar assim, mas vai ficar cada vez mais lento, conforme aumente o número de registros.

 

Veja

http://rberaldo.com.br/o-problema-do-n-mais-1/

http://forum.imasters.com.br/topic/140816-mini-tutorial-de-mysql/

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelo vosso contributo amigos,

Já li o artigo do Beraldo, contudo no meu post anterior esqueci-me de dizer onde estava o meu problema.

O problema ocorre quando eu quero verificar quais os campos do primeiro select($result2) é que são idênticos aos campos do select que se encontram dentro do loop.

Mais objectivamente o problema surge no "if".

if($no[$l]==$row1[0])

Se eu substituir $no[$l] por $no[0] ele identifica uma linha idêntica, mas se estiver $no[$l] da a impressão que ignora essa linha.

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.