Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) parando e startando um while


Carlos Rocha

Pergunta

pessoal

tenho 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?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

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 por Romero Dias
Link para o comentário
Compartilhar em outros sites

  • 0

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=1

O que fazer para resolver isso?

Link para o comentário
Compartilhar em outros sites

  • 0

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>";                                                                                   
}
?>

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...