Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com um probleminha na listagem de um site. Provisoriamente eu ordenei os produtos em impar e par em uma tabela. Ex:
1 | 2
3 | 4 ...
Um problema que foi detectado é o seguinte. Se algum produto for deletado, a ordem não é mais respeitada. Por exemplo, se o produto com cod 2 for deletado a ordem ficará assim:
1 |
3 | 4 ...
Meu objetivo seria o seguinte. Se eu deletar o cod 2, a lista corrija isso e fique da seguinte forma. Ex:
1 | 3
4 | 5...
Eu não estou conseguindo fazer com que ao deletar um produto, a sequencia seja respeitada. Sei que um laço pode ser a solução. Mas estou com dificuldade em desenvolver o script.
Se uma idéia, exemplo ou ajuda for possível, eu ficaria grato.
Valeu!
Olá, Erick.
A ordenação que você quer é visual, né? Se sim, então você utilizará HTML e CSS. Para isso, utilize tables. :thumbsup:
Veja:
<?php
$codTudo = array ($cod);
rsort ($codTudo);
?>
<table border="1">
<?php foreach( $codTudo as $chave => $valor ){ ?>
<tr>
<td><?php echo $chave; ?></td>
<td><?php echo $valor; ?></td>
</tr>
<?php echo } ?>
</table>>
Olá, Erick.
A ordenação que você quer é visual, né? Se sim, então você utilizará HTML e CSS. Para isso, utilize tables. :thumbsup:
Veja:
<?php
$codTudo = array ($cod);
rsort ($codTudo);
?>
<table border="1">
<?php foreach( $codTudo as $chave => $valor ){ ?>
<tr>
<td><?php echo $chave; ?></td>
<td><?php echo $valor; ?></td>
</tr>
<?php echo } ?>
</table>
Eu só estou organizando usando a tabela.
Estou com problema é na ordenação
Vou deixar mais claro
Estou com um probleminha na listagem de um site. Provisoriamente eu ordenei os produtos em impar e par em uma tabela. Ex:
<tr><td>1</td><td> 2 </td></tr>
<tr><td>3</td><td> 4 </td></tr>...
Um problema que foi detectado é o seguinte. Se algum produto for deletado, a ordem não é mais respeitada. Por exemplo, se o produto com cod 2 for deletado a ordem ficará assim:
<tr><td>1</td><td> (vazio) </td></tr>
<tr><td>3</td><td>4</td></tr> ...
Meu objetivo seria o seguinte. Se eu deletar o cod 2, a lista corrija isso e fique da seguinte forma. Ex:
<tr><td>1</td><td>3</td></tr>
<tr><td>4</td><td>5</td></tr> ...
Aqui vai o meu código:
while ($row =$stm->fetch())
{
// Aqui foi informado o primeiro campo a ser exibido na linha do array.
$this->cod=$row['cod'];
$cod = $this->cod;
$this->nome=$row['nome'];
$nome = $this->nome;
$this->modelo=$row['modelo'];
$this->ano=$row['ano'];
$this->tipo=$row['tipo'];
$this->combustivel=$row['combustivel'];
$this->cor=$row['cor'];
$this->opc=$row['opc'];
$this->valor=$row['valor'];
$this->catalogo = $row['catalogo'];
$this->descarte = $row['descarte'];
$this->endereco = $row['endereco'];
$endereco = $this->endereco;
$this->nomefoto = $row['nomefoto'];
$nomefoto = $this->nomefoto;
if($cod % 2 != 0){
echo"
<tr valign='top' bgcolor='#767772'>
<td width='321'>
<div style='padding: 10px; color: white'>
<font size''2'>".$this->nome."</font><br><br>
<img src='".$this->endereco."' width='113' height='65' align='left' style='margin-right: 8px'>
<a href='#' class='arr6'>Cor:".$this->cor." </a><br>
<a href='#' class='arr6'>Modelo:".$this->modelo." </a><br>
<a href='#' class='arr6'>Ano:".$this->ano." </a><br>
</div>
<div style='float: right'>
<form action='detalhes.php' method='POST' >
<input type='hidden' name='cod' value='$this->cod' >
<input id='ver' type='submit' value='Detalhar' onclick='ver_iframe()' title='Ver' ></form>
</div><br>
<img src='../mrimports/img/spa.gif' class='hr' width='282' height='1' vspace='15'><br>
</div>
<img src='../mrimports/img/spa.gif' width='319' height='1'><br>
</td>
";
}
if($cod%2==0){
echo"<td width='319'>
<div style='padding: 10px; color: white'>
<font size='2'>".$this->nome."</font><br><br>
<img src='".$this->endereco."' width='113' height='65' align='left' style='margin-right: 8px'>
<a href='#' class='arr6'>Cor: ".$this->cor." </a><br>
<a href='#' class='arr6'>Modelo:".$this->modelo." </a><br>
<a href='#' class='arr6'>Ano:".$this->ano." </a><br>
</div>
<div style='float: right'>
<form action='detalhes.php' method='POST' >
<input type='hidden' name='cod' value='$this->cod' >
<input id='ver' type='submit' value='Detalhar' onclick='ver_iframe()' title='Ver' ></form>
</div><br>
<img src='../mrimports/img/spa.gif' class='hr' width='282' height='1' vspace='15'><br>
</div>
<img src='../mrimports/img/spa.gif' width='318' height='1'><br>
</td>
</tr>
";}
}
Como eu disse a cima, isso daqui resolve em partes, o meu problema
//Eu acabei descobrindo uma função que ordena, chamada "rsort".
$codTudo = array ($cod);
rsort ($codTudo);
foreach( $codTudo as $chave => $valor ){
echo "$chave = $valor\n<br>";
}
Agora, como farei pra pegar os valores do array separadamente usando laço?
Agora não entendi a sua pergunta. Você quer um array somente para chaves e outro somente para valores? É isso? Desculpe, mas não estou conseguindo entender.
>
Agora não entendi a sua pergunta. Você quer um array somente para chaves e outro somente para valores? É isso? Desculpe, mas não estou conseguindo entender.
Então...o que me interessa, é o q ta no array "$valores". está pegando todos os cod e ordenando de forma crescente. como eu farei pra pegar os cod separadamente?
Do jeito que está ai, ele esta imprimindo tudo, mas eu preciso pegar os valores separadamente e ordenalos um ao lado do outro de forma crescente, como eu mostrei nas tabelas.
Isso você pode tratar no próprio SQL. Como você está usando rsort, lá no SQL você deve resgatá-los de forma decrescente.
Por acaso, você quer ordenar números pares ou ímpares?
>
Isso você pode tratar no próprio SQL. Como você está usando rsort, lá no SQL você deve resgatá-los de forma decrescente.
Por acaso, você quer ordenar números pares ou ímpares?
Cara, é só ler os meus posts. Acho q eu fui claro. Primeiramente, eu estou ordenando em impar e par...mas dessa forma, é passível de erro. Eu só preciso de uma ideia para ordenar os produtos de forma crescente.
Eu acabei descobrindo uma função que ordena, chamada "rsort".
Como eu farei pra pegar os valores no array e ordenar os produtos dessa forma?
1 | 2
3 | 4...