Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Junior Dias_55232

Repetir Coluna e Linha PHP

Recommended Posts

Fala pessoal, td beleza?

Primeira vez por aqui, venho pedir uma ajuda a vcs.

Preciso repetir um conteúdo em 3 colunas e 6 linhas, sendo dados vindo do DB MySQL.

Para ajudar em minha dúvida estou postando imagens...e o código para facilitar!

 

Dessa maneira eu sei fazer:

lista-linha.jpg

 

Dessa maneira eu "NÃO" sei fazer:

lista-grade.jpg

 

Esse é o código que eu sei fazer onde está visível na primeira imagem:

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
 if (PHP_VERSION < 6) {
   $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }

 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

 switch ($theType) {
   case "text":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;    
   case "long":
   case "int":
     $theValue = ($theValue != "") ? intval($theValue) : "NULL";
     break;
   case "double":
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
     break;
   case "date":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;
   case "defined":
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
     break;
 }
 return $theValue;
}
}

$maxRows_rsTESTE = 9;
$pageNum_rsTESTE = 0;
if (isset($_GET['pageNum_rsTESTE'])) {
 $pageNum_rsTESTE = $_GET['pageNum_rsTESTE'];
}
$startRow_rsTESTE = $pageNum_rsTESTE * $maxRows_rsTESTE;

mysql_select_db($database_connOLDX, $connOLDX);
$query_rsTESTE = "SELECT * FROM Teste ORDER BY ID DESC";
$query_limit_rsTESTE = sprintf("%s LIMIT %d, %d", $query_rsTESTE, $startRow_rsTESTE, $maxRows_rsTESTE);
$rsTESTE = mysql_query($query_limit_rsTESTE, $connOLDX) or die(mysql_error());
$row_rsTESTE = mysql_fetch_assoc($rsTESTE);

if (isset($_GET['totalRows_rsTESTE'])) {
 $totalRows_rsTESTE = $_GET['totalRows_rsTESTE'];
} else {
 $all_rsTESTE = mysql_query($query_rsTESTE);
 $totalRows_rsTESTE = mysql_num_rows($all_rsTESTE);
}
$totalPages_rsTESTE = ceil($totalRows_rsTESTE/$maxRows_rsTESTE)-1;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>

<body>
<?php do { ?>
 <table width="300" border="0">
   <tr>
     <td width="335" bgcolor="#999999">Código: <?php echo $row_rsTESTE['ID']; ?></td>
   </tr>
   <tr>
     <td bgcolor="#CCCCCC">Nome: <?php echo $row_rsTESTE['NOME']; ?></td>
   </tr>
   <tr>
     <td bgcolor="#999999">E-mail: <?php echo $row_rsTESTE['EMAIL']; ?></td>
   </tr>
   <tr>
     <td bgcolor="#CCCCCC">Usuário: <?php echo $row_rsTESTE['USUARIO']; ?></td>
   </tr>
   <tr>
     <td bgcolor="#999999">Senha: <?php echo $row_rsTESTE['SENHA']; ?></td>
   </tr>
   <tr>
     <td> </td>
   </tr>
 </table>
 <?php } while ($row_rsTESTE = mysql_fetch_assoc($rsTESTE)); ?>
</body>
</html>
<?php
mysql_free_result($rsTESTE);
?>

 

Pessoal, acho que consegui especificar bem minha dúvida.

Eu sei criar o while para repetir no módulo LINHA mas eu preciso repetir o resultado em módulo GRADE.

 

Espero que vcs possam me ajudar!

 

Valew

 

Abraços a tds!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara isso voçe faz no css, e nao no php....

 

<style type="text/css">
.grade{width:100%;float:left;}
.grade .grade1{width:33%;float:left;background:#4e4e4e;}
.grade .grade2{width:33%;float:left;background:#fff;}
.grade .grade3{width:33%;float:left;background:#4e4e4e;}
.grade .grade1 .grade-int{width:100%;float:left;background:#4e4e4e;min-height:800px;}
.grade .grade2 .grade-int{width:100%;float:left;background:#fff;min-height:800px;}
.grade .grade3 .grade-int{width:100%;float:left;background:#4e4e4e;min-height:800px;}

</style>
<!-- GRADE TOTAL -->
<div class="grade">
<!-- PRIMEIRA GRADE -->
<div class="grade1">
<div class="grade-int">
<!-- CONTEUDO AKI -->
</div>
</div>
<!-- SEGUNDA GRADE -->
<div class="grade2">
<div class="grade-int">
<!-- CONTEUDO AKI -->
</div>
</div>
<!-- TERCEIRA GRADE -->
<div class="grade3">
<div class="grade-int">
<!-- CONTEUDO AKI -->
</div>
</div>
<!-- FIM GRADE TOTAL -->
</div>

</div>
</div>

 

ae é so colocar o codigo php no html

 

--------------------------------------------

fiz esse para tu ver.. se é isso que tu quer

 


<style type="text/css">
.grade{width:100%;float:left;}
.grade .grade1{width:33%;float:left;background:#4e4e4e;}

.grade .grade1 .grade-int{width:100%;float:left;background:#4e4e4e;min-height:800px;border:1px solid #fff}

</style>

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;    
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$maxRows_rsTESTE = 9;
$pageNum_rsTESTE = 0;
if (isset($_GET['pageNum_rsTESTE'])) {
$pageNum_rsTESTE = $_GET['pageNum_rsTESTE'];
}
$startRow_rsTESTE = $pageNum_rsTESTE * $maxRows_rsTESTE;

mysql_select_db($database_connOLDX, $connOLDX);
$query_rsTESTE = "SELECT * FROM Teste ORDER BY ID DESC";
$query_limit_rsTESTE = sprintf("%s LIMIT %d, %d", $query_rsTESTE, $startRow_rsTESTE, $maxRows_rsTESTE);
$rsTESTE = mysql_query($query_limit_rsTESTE, $connOLDX) or die(mysql_error());
$row_rsTESTE = mysql_fetch_assoc($rsTESTE);

if (isset($_GET['totalRows_rsTESTE'])) {
$totalRows_rsTESTE = $_GET['totalRows_rsTESTE'];
} else {
$all_rsTESTE = mysql_query($query_rsTESTE);
$totalRows_rsTESTE = mysql_num_rows($all_rsTESTE);
}
$totalPages_rsTESTE = ceil($totalRows_rsTESTE/$maxRows_rsTESTE)-1;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>

<body>
<?php do { ?>
<div class="grade">
<div class="grade1">
<div class="grade-int">
<?php echo $row_rsTESTE['ID']; ?>
</div>
</div>
<div class="grade1">
<div class="grade-int">
Nome: <?php echo $row_rsTESTE['NOME']; ?>
</div>
</div>
<div class="grade1">
<div class="grade-int">
E-mail: <?php echo $row_rsTESTE['EMAIL']; ?>
</div>
</div>
<div class="grade1">
<div class="grade-int">
Usuário: <?php echo $row_rsTESTE['USUARIO']; ?>
</div>
</div>
<div class="grade1">
<div class="grade-int">
Senha: <?php echo $row_rsTESTE['SENHA']; ?>
</div>
</div>

</div>
<?php } while ($row_rsTESTE = mysql_fetch_assoc($rsTESTE)); ?>
</body>
</html>
<?php
mysql_free_result($rsTESTE);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara isso voçe faz no css, e nao no php....

 

<style type="text/css">
.grade{width:100%;float:left;}
.grade .grade1{width:33%;float:left;background:#4e4e4e;}
.grade .grade2{width:33%;float:left;background:#fff;}
.grade .grade3{width:33%;float:left;background:#4e4e4e;}
.grade .grade1 .grade-int{width:100%;float:left;background:#4e4e4e;}
.grade .grade2 .grade-int{width:100%;float:left;background:#fff;}
.grade .grade3 .grade-int{width:100%;float:left;background:#4e4e4e;}

</style>
<!-- GRADE TOTAL -->
<div class="grade">
<!-- PRIMEIRA GRADE -->
<div class="grade1">
<div class="grade-int">
<!-- CONTEUDO AKI -->
</div>
</div>
<!-- SEGUNDA GRADE -->
<div class="grade2">
<div class="grade-int">
<!-- CONTEUDO AKI -->
</div>
</div>
<!-- TERCEIRA GRADE -->
<div class="grade3">
<div class="grade-int">
<!-- CONTEUDO AKI -->
</div>
</div>
<!-- FIM GRADE TOTAL -->
</div>

</div>
</div>

 

ae é so colocar o codigo php no html

 

Fera...o que eu preciso é no PHP...são dados vindo do DB MySQL...não quero fazer isso estático...quero fazer dinamicamente usando "while" postei as imagens para que no fórum as pessoas possam entender melhor!

Sei trabalhar com CSS muito bem, e esse código é apenas um modelo rapido que fiz para postar!

Só ressaltando...eu preciso fazer um "while" repetindo em 3 colunas e 6 linhas...com os dados vindo do DB MySQL!!!

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

 

<body>

<table width="300" border="0">

<tr>

<?php

$x = 1;

do {

if ($x > 3) {?>

</tr><tr>

<? $x = 1; } ?>

<td>

<table width="300" border="0">

<tr>

<td width="335" bgcolor="#999999">Código: <?php echo $row_rsTESTE['ID']; ?></td>

</tr>

<tr>

<td bgcolor="#CCCCCC">Nome: <?php echo $row_rsTESTE['NOME']; ?></td>

</tr>

<tr>

<td bgcolor="#999999">E-mail: <?php echo $row_rsTESTE['EMAIL']; ?></td>

</tr>

<tr>

<td bgcolor="#CCCCCC">Usuário: <?php echo $row_rsTESTE['USUARIO']; ?></td>

</tr>

<tr>

<td bgcolor="#999999">Senha: <?php echo $row_rsTESTE['SENHA']; ?></td>

</tr>

<tr>

<td> </td>

</tr>

</table>

</td>

<?php $x++; } while ($row_rsTESTE = mysql_fetch_assoc($rsTESTE)); ?>

</tr></table>

</body>

 

__

 

O que acontece nesse código: é criada uma variável chamada x com o valor 1 e envolvendo todo o conteúdo vai ter uma tabela principal. A variável x é incrementada a cada execução do while. Quando essa variável passa de 3, é fechada a linha atual da tabela e aberta uma outra para continuar escrevendo a próxima linha. Com isso sempre vão ser criadas linhas com 3 colunas. Claro que dá pra mudar, por exemplo, tirando esse monte de tabelas de dentro das colunas da tabela principal, mas deixei assim só pra dar uma ideia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

 

<body>

<table width="300" border="0">

<tr>

<?php

$x = 1;

do {

if ($x > 3) {?>

</tr><tr>

<? $x = 1; } ?>

<td>

<table width="300" border="0">

<tr>

<td width="335" bgcolor="#999999">Código: <?php echo $row_rsTESTE['ID']; ?></td>

</tr>

<tr>

<td bgcolor="#CCCCCC">Nome: <?php echo $row_rsTESTE['NOME']; ?></td>

</tr>

<tr>

<td bgcolor="#999999">E-mail: <?php echo $row_rsTESTE['EMAIL']; ?></td>

</tr>

<tr>

<td bgcolor="#CCCCCC">Usuário: <?php echo $row_rsTESTE['USUARIO']; ?></td>

</tr>

<tr>

<td bgcolor="#999999">Senha: <?php echo $row_rsTESTE['SENHA']; ?></td>

</tr>

<tr>

<td> </td>

</tr>

</table>

</td>

<?php $x++; } while ($row_rsTESTE = mysql_fetch_assoc($rsTESTE)); ?>

</tr></table>

</body>

 

__

 

O que acontece nesse código: é criada uma variável chamada x com o valor 1 e envolvendo todo o conteúdo vai ter uma tabela principal. A variável x é incrementada a cada execução do while. Quando essa variável passa de 3, é fechada a linha atual da tabela e aberta uma outra para continuar escrevendo a próxima linha. Com isso sempre vão ser criadas linhas com 3 colunas. Claro que dá pra mudar, por exemplo, tirando esse monte de tabelas de dentro das colunas da tabela principal, mas deixei assim só pra dar uma ideia.

Fera...testei aqui mas não deu certo esse modelo que você postou!

Quanto ao fazer de outra maneira...eu estou aberto a sugestões...esse modelo que eu postei é apenas um teste que eu fiz usando tabelas...no projeto eu uso td em CSS...!

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho melhor por MSN por ser mais rápido o contato, mas como aparentemente não tem tempo para ficar lá continuamos o contato por aqui mesmo. Fiz esse modelo pra ajudar a entender a lógica:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
$total = 30;
$colunas = 3;
$x = 1;
$n = 1;
echo '<table border="1">
  <tr>';
while ($x <= $total) {
if ($n > $colunas) {
	echo '</tr><tr>';
	$n = 1;
}
echo '<td>'.$x.'</td>';
$x++;
$n++;
}
echo '</tr></table>';
?>
</body>
</html>

 

Ele vai escrever os números de 1 a 30 dividindo a tabela em 3 colunas por linha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso flot:left;

muito dificio eu usar dessa forma.

 

mas fassa assim que da certo.

 

se for array da para usar tanto for como while.

mas esto mostrando apenas while;

[/code]

<table>
   <tr>
   <?
   $i = 0;
   $s = 0;
   $c = 4;//quantidade de colunas
   $MeuConteudo = '|Teste Erison Silva|';
   while($i<10){
       if($s<$c){
           echo '<td>'.$MeuConteudo.'</td>';
       }
       elseif($s==$c){
           echo '</tr><tr><td>'.$MeuConteudo.'</td>';
           $s=0;
           }//se $s for igual a $c, ele quebra uma linha e zera(0) a variavel $s para começa dinovo a verificação
   $i++;
   $s++;
   }?>
    </tr>
</table>

 

dessa forma e do banco

 

 

<table>
   <tr>
   <?
   $c = 4;//quantidade de colunas
   $s = 0;
   $Qry = mysql_query(Select * From tabela);
   while($Mst = mysql_fetch_array($Qry)){
       if($s<$c){
           echo '<td>'.$Mst['conteudo'].'</td>';
       }
       elseif($s==$c){
           echo '</tr><tr><td>'.$Mst['conteudo'].'</td>';
           $s=0;
           }//se $s for igual a $c, ele quebra uma linha e zera(0) a variavel $s para começa dinovo a verificação
   $s++;
   }?>
    </tr>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.