biza 1 Denunciar post Postado Outubro 11, 2015 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
Beraldo 864 Denunciar post Postado Outubro 11, 2015 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
LandersonAlmeida 31 Denunciar post Postado Outubro 11, 2015 Dê uma olhada no link do beraldo.. #Editado..... ^^ this. #Editado 10:56 Compartilhar este post Link para o post Compartilhar em outros sites
biza 1 Denunciar post Postado Outubro 11, 2015 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