Carlos Rocha Postado Agosto 18, 2010 Denunciar Share Postado Agosto 18, 2010 pessoaltenho o codigo abaixo que me retorna 100 registros. Cada registro uma checkbox. Uma do lado da outra.<? while (list($id, $nome) = mysql_fetch_row($produtos)){ print "<input type='checkbox' name='produtoid' value='$id' />$nome</option>"; } } ?>O que eu queria?queria que , de que, de 10 em 10 registros o codigo pulasse uma linha.tem jeito isso em php? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Agosto 18, 2010 Denunciar Share Postado Agosto 18, 2010 Prezado,Faça um teste com o código abaixo:<?php $cont = 1; while ($cont <= 100) { echo $cont . '-'; echo ( $cont%10 == 0 )? "<br>" : ''; $cont++; } ?>Abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Agosto 19, 2010 Autor Denunciar Share Postado Agosto 19, 2010 Bom, mas E se para cada 10 regitros fosse criado mesmo linhas <tr> e 10 colunas <td>.Era isso que eu preciso realmente Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Agosto 19, 2010 Denunciar Share Postado Agosto 19, 2010 (editado) Carlos,Não entendi perfeitamente esta última dúvida, Fiz um exemplo, faça um teste se seria isso realmente:<?php $cont = 1; echo "<table border='1'>"; while ($cont <= 100) { echo ( $cont%10 == 1 )? "</tr>" : ''; echo "<td>coluna $cont</td>"; echo ( $cont%10 == 0 )? "</tr>" : ''; $cont++; } echo "</table>"; ?> Tambem existe outra forma de fazer isso, o que eu acho o mais correto: utilizando uma matriz. <?php $cont = 1; echo "<table border='1'>"; for ($i=0; $i<=10; $i++) { echo "</tr>"; for ($j=0; $j<=10; $j++) { echo "<td>($i,$j)</td>"; } echo "</tr>"; } ?>Abraço Editado Agosto 19, 2010 por Romero Dias Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Agosto 19, 2010 Autor Denunciar Share Postado Agosto 19, 2010 não, não. Conseui.Deu certo assim.<tr><td colspan="10">Produto:</td></tr> <? $i=1; while (list($id, $nome) = mysql_fetch_row($produtos)) { echo '<td><input type="checkbox" name="produtoid[]" value="'.$id.'" />'.$nome.'</td>'; if( $i%10==0 ) {echo '</tr><tr>';} $i++; } ?> Agora isso ai me gerou um outro problema. Desta vez na paginação. na hora de montar a pagina 0, 1, 2 e assim por diante. É montado assim no fim do while: ... if($pagina > 0) { $menos = $pagina - 1; $url = "$PHP_SELF?acao=verpreco&produtoid=$produtoid&pagina=$menos"; echo "<a href=".$url.">Anterior</a>"; // Vai para a página anterior } for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas $url = "$PHP_SELF?acao=verpreco&produtoid=$produtoid&pagina=$i"; echo " | <a href=".$url.">$i</a>"; } if($pagina < ($paginas - 1)) { $mais = $pagina + 1; $url = "$PHP_SELF?acao=verpreco&produtoid=$produtoid&pagina=$mais"; echo " | <a href=".$url.">Próxima</a>"; } A}contece que essa variavel html na url 'produtoid' que recebe a variavel php $produtoid, recebe valor com carcter de string e esta me jogando no mato.Veja: $produtoid= 'p.id=1 or p.id=2 or p.id=3 or p.id=4 or p.id=5'; quando jogo este valor nna variavel html produtoid ele para no primeiro sinal de igual e a string url fica assim: http://localhost/php/carcleo.com/sistema/controle/paginas_controle/Pesquizas.php?acao=verpreco&produtoid=p.id=1O que fazer para resolver isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Agosto 19, 2010 Autor Denunciar Share Postado Agosto 19, 2010 Obrigado a todos.Consegui assim:<? if($acao=="verpreco") { if ($idproduto) { $produtoid=urldecode($idproduto); } else { foreach($_POST['produtoid'] AS $key => $value) { $var[]="p.id=".$value." or"; } $produtoid=implode(' ',$var); $produtoid= substr($produtoid,0, -3); } $sql = mysql_query(" Select pp.id, pp.idProduto, pp.idFornecedor, p.nome, f.nome, pp.preço from produtopreco pp inner join produtos p on pp.idProduto=p.id inner join fornecedores f on pp.idFornecedor=f.id where $produtoid order by f.nome, p.nome, pp.preço "); $total = mysql_num_rows($sql); // Esta função irá retornar o total de linhas na tabela $lpp = 10; // Especifique quantos resultados você quer por página $paginas = ceil($total / $lpp); // Retorna o total de páginas if(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada $inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL $sql = mysql_query(" Select pp.id, pp.idProduto, pp.idFornecedor, p.nome, f.nome, pp.preço from produtopreco pp inner join produtos p on pp.idProduto=p.id inner join fornecedores f on pp.idFornecedor=f.id where $produtoid order by f.nome, p.nome, pp.preço LIMIT $inicio, $lpp "); print "<table align='center' width=400 bgcolor='#0080C0'>"; if ($total == "0") {?><tr><td colspan=8 align="center" valign="middle" bgcolor="#FFFFFF"><center><font color=red>=>Não foi encontrado nenhum registro para a sua pesquisa</font></center></td></tr><?php } else { print "<tr ><td align=center colspan=3>Preços dos fornecedores para o produto $produtoenviado</td></tr>"; print "<tr BGCOLOR='#CCCCCC'><td align=center>Produto</td> "; print " <td align=center>Preço Total</td> "; print " <td align=center>Fornecedor</td></tr>"; while(list($id, $idProduto, $idFornecedor, $nomeproduto, $nomefornecedor, $preço)=mysql_fetch_row($sql)){ print "<tr BGCOLOR='#FFFFFF'><td align=center>$nomeproduto - $preço</td> "; print " <td align=center>$precototal</td> "; print " <td align=center>$nomefornecedor</td></tr>"; } } if($pagina > 0) { $menos = $pagina - 1; $url = "$PHP_SELF?acao=verpreco&pagina=$menos&idproduto=".urlencode($produtoid); echo "<a href=".$url.">Anterior</a>"; // Vai para a página anterior } for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas $url = "$PHP_SELF?acao=verpreco&pagina=$i&idproduto=".urlencode($produtoid); echo " | <a href=".$url.">$i</a>"; } if($pagina < ($paginas - 1)) { $mais = $pagina + 1; $url = "$PHP_SELF?acao=verpreco&pagina=$mais&idproduto=".urlencode($produtoid); echo " | <a href=".$url.">Próxima</a>"; } print "</table>"; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Carlos Rocha
pessoal
tenho o codigo abaixo que me retorna 100 registros. Cada registro uma checkbox. Uma do lado da outra.
O que eu queria?
queria que , de que, de 10 em 10 registros o codigo pulasse uma linha.
tem jeito isso em php?
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.