cadmiel 0 Denunciar post Postado Fevereiro 16, 2012 Boa tarde Meu problema é o seguinte tenho um atributo do tipo varchar na minha entidade que armazena exemplo 3,5,2,6 fiz um select nessa entidade peguei esse atributo dei um explode depois tirei as virgulas e agora quero pegar cada numero e comparar esses numeros com os registro que estão numa outra entidade ja consegue fazer muita coisa meu problema está em pegar esses registros é claro sem as virgulas(isso ja consegue) so falta comprar com os registros da outra entidade isso que não estou conseguindo segue abaixo o codigo para você's verem o que eu já consegue $as = explode(',',$row_orcamento['idprod']); $c = count($as)."<br>"."<br>"."<br>"."<br>"."<br>"; $c=$c-1; for($i = 0; $i < $c; $i ++) ) $as[$i]."<br>"; mysql_select_db($database_conexao, $conexao); //aqui está meu problema no where ele não está repetindo para todos os registros $query_produto = "SELECT id, codigo, referencia, caixa, descricao, `data` FROM tbproduto where id='$as[$i]'"; $produto = mysql_query($query_produto, $conexao) or die(mysql_error()); $row_produto = mysql_fetch_assoc($produto); Não sei se deu para entender. desde já agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Chaves 0 Denunciar post Postado Fevereiro 16, 2012 Boa tarde Meu problema é o seguinte tenho um atributo do tipo varchar na minha entidade que armazena exemplo 3,5,2,6 fiz um select nessa entidade peguei esse atributo dei um explode depois tirei as virgulas e agora quero pegar cada numero e comparar esses numeros com os registro que estão numa outra entidade ja consegue fazer muita coisa meu problema está em pegar esses registros é claro sem as virgulas(isso ja consegue) so falta comprar com os registros da outra entidade isso que não estou conseguindo segue abaixo o codigo para você's verem o que eu já consegue $as = explode(',',$row_orcamento['idprod']); $c = count($as)."<br>"."<br>"."<br>"."<br>"."<br>"; $c=$c-1; for($i = 0; $i < $c; $i ++) ) $as[$i]."<br>"; mysql_select_db($database_conexao, $conexao); //aqui está meu problema no where ele não está repetindo para todos os registros $query_produto = "SELECT id, codigo, referencia, caixa, descricao, `data` FROM tbproduto where id='$as[$i]'"; $produto = mysql_query($query_produto, $conexao) or die(mysql_error()); $row_produto = mysql_fetch_assoc($produto); Não sei se deu para entender. desde já agradeço. ok, vamos la: para montar esta clausula use uma repetição no seu array. $query_produto = "SELECT id, codigo, referencia, caixa, descricao, `data` FROM tbproduto where "; $cont = 0; foreach ($as as $id){ if ($cont != 0) $query_produto .= "AND "; //pode colocar um OR, depende do seu caso $query_produto .= "id = '{$id}'"; } Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Fevereiro 17, 2012 sugiro executar a query uma única vez utilizando a função IN() do SQL //$row_orcamento['idprod'] = '1,3,6,10,30'; // para debug apenas.. $query_produto = 'SELECT id, codigo, referencia, caixa, descricao, `data` FROM tbproduto WHERE id IN(' . $row_orcamento['idprod'] . ');'; // não precisa usar o explode e tampouco gerar várias querys dentro de um laço de repetição (while, for..).. // echo $query_produto; exit; // para debug apenas.. $produto = mysql_query($query_produto, $conexao) or die(mysql_error()); $row_produto = mysql_fetch_assoc($produto); obviamente deve fazer tratamento da entrada, principalmente se provier de um usuário. Compartilhar este post Link para o post Compartilhar em outros sites
cadmiel 0 Denunciar post Postado Fevereiro 27, 2012 ok, vamos la: para montar esta clausula use uma repetição no seu array. $query_produto = "SELECT id, codigo, referencia, caixa, descricao, `data` FROM tbproduto where "; $cont = 0; foreach ($as as $id){ if ($cont != 0) $query_produto .= "AND "; //pode colocar um OR, depende do seu caso $query_produto .= "id = '{$id}'"; } Vlw deu certo estava esquecendo das chaves...rs valeu mesmo cara. Compartilhar este post Link para o post Compartilhar em outros sites