+2

Exibindo consultas em colunas no MySQL

criado por Diego Mascarenhas em 02/04/2002 5:44pm
Pois bem, vamos por a mão na massa.
Primeiro vamos ao básico, criando a conexão, selecionando o banco de dados, e a tabela.

<?php
$host = "localhost";
$user = "usuario";
$senha = "senha";
$tabela = "tabela";
$conn = mysql_connect($host,$user,$senha);
$banco = mysql_select_db($db);
$sql = mysql_query("SELECT * FROM $tabela");
?>
Agora exiba o código com a configuração de sua tabela - o cabeçalho dela.

<?php
echo "<table width=100 border=0>";
?>

Agora vamos montar o código. Pegue o valor total de resultados:

<?php
$total = mysql_num_rows($sql);
?>

Defina o número de colunas que você deseja exibir:

<?php
$colunas = "3";
?>

Agora vamos ao "truque":

<?php
if ($total>0) {
    for ($i = 0; $i &lt; $total; $i++) {
        if (($i%$colunas)==0) {
        echo "&lt;/tr>";
        echo "&lt;tr>";
    }
?>

Nesse trecho, ele verifica se o total é maior que zero, se for ele cria um laço for até o último resultado. No comando if (($i%$colunas)==0) { ele verifica se o registro atual divido pelo número de colunas é igual a 0. Se for ele exibe os echos.

Agora você vai exibir os dados:

<?php
    $dados = mysql_fetch_array($sql);
    $nome = $dados["nome"];
    echo "<td>$nome</td>";
?>

Lembrando sempre de por as tags &lt;td> e &lt;/td>.

Por fim finalize os laços:

<?php
    }
} else {
    echo "Nenhum registro encontrado";
}
?>

Simples não? e as vezes você pode nunca ter pensado nisso. Pois bem, uma dica simples e que pode ajudar muita gente.

Até a próxima!

Comentários:

Mostrando 1 - 10 de 18 comentários
camane disse:
Boas,
Funciona 5*, mas quando altero a consulta SQL de select * para select distinct, berra.
Podem me ajudar.
Valeu
23/02/2009 12:27pm (~15 anos atrás)

Antonio Menin disse:
Isto aqui está às moscas! Vou procurar outro fórum.
13/03/2008 3:23pm (~16 anos atrás)

Antonio Menin disse:
Alguém pode me dar um help? Sou novo na parada. Consegui rodar o script do Diego sem problemas, detectei o problema com os sinais de maior e menor que, e o banco de dados, e a conexão com o banco de dados fiz através do script que estou testando, no servidor local. Rodou belezinha. Segue abaixo. O único problema é que preciso saber como é possível fazer adaptação para que possa limitar a quantidade de resultados por página, de maneira que, por exemplo, os resultados após o 9.º, possam ir para outra página.

Estou adaptando um script que comprei (depois verifiquei que conseguiria baixá-lo na faixa), que é de imóveis, e estou adaptando para veículos. Os resultados apareciam na quantidade de 1 por linha. Desejo deixar 3 por linha, e um total de 9 por página (3 linhas). Acontece que, se na linha na linha "$ByPage = '3';" altero o valor para 4, por exemplo, a página é afastada lateralmente. Se mantenho o valor 3, o quarto resultado vai para outra página. Gostaria que não acontecesse isso. Gostaria que, do quarto resultado até o sexto, eles fossem para a segunda linha, e do sétima ao nono, fossem para a terceira linha, e do décimo em diante, para outra página.

Me ajuda, aí, moçada! Por favor! Um abraço a todos.

Abaixo, o código do Diego (e depois o meu):

<?php
require_once("../ver_anuncios/busca/configuracao_mysql.php");
//$host = "localhost";
//$user = "root";
//$senha = "";
$tabela = "zre2_listingsvp";
//$conn = mysql_connect($host,$user,$senha);
$banco = mysql_select_db($db);
$sql = mysql_query("SELECT * FROM zre2_listingsvp");

echo "<table width=100 border=1>";

$total = mysql_num_rows($sql);

$colunas = "3";

if ($total>0) {

for ($i = 0; $i < $total; $i++) {
if (($i%$colunas)==0) {
echo "</tr>";
echo "<tr>";
}

$dados = mysql_fetch_array($sql);
$nome = $dados["ListingvpID"];
$nome_2 = $dados["modelo"];
//$nome = $dados["ListingvpID"];

echo "<td><table width=150><tr><td width=150 align=center>$nome</td></tr><tr><td width=150 align=center>$nome_2</td></tr></table></td>";
// echo "<td>$nome</td>";

}
} else {
echo "Nenhum registro encontrado";
}

?>

Agora o meu código:

<?
require_once("configuracao_mysql.php");
//require_once("includesvp_teste.php");
//require_once("includes.php");
//require_once("includes2.php");
require_once("arquivo_de_estilos.php");

$query = array();

if(!empty($_GET[cvp]))
{
$query[] = "zre2_listingsvp.CategoryvpID = '$_GET[cvp]' ";
}

if(!empty($_GET[svp]))
{
$query[] = "zre2_listingsvp.SubcategoryvpID = '$_GET[svp]' ";
}

if(!empty($_GET[search_tipo]))
{
$query[] = "zre2_listingsvp.tipo = '$_GET[search_tipo]' ";
}

if(!empty($_GET[search_procedencia]))
{
$query[] = "zre2_listingsvp.procedencia = '$_GET[search_procedencia]' ";
}

if(!empty($_GET[search_marca]))
{
$query[] = "zre2_listingsvp.marca = '$_GET[search_marca]' ";
}

if(!empty($_GET[search_modelo]))
{
$query[] = "zre2_listingsvp.modelo = '$_GET[search_modelo]' ";
}

if(!empty($_GET[search_cor]))
{
$query[] = "zre2_listingsvp.cor = '$_GET[search_cor]' ";
}

if(!empty($_GET[search_anofab]))
{
$query[] = "zre2_listingsvp.anofab = '$_GET[search_anofab]' ";
}

if(!empty($_GET[search_anomod]))
{
$query[] = "zre2_listingsvp.anomod = '$_GET[search_anomod]' ";
}

if(!empty($_GET[search_motorizacao]))
{
$query[] = "zre2_listingsvp.motorizacao = '$_GET[search_motorizacao]' ";
}

if(!empty($_GET[search_combustivel]))
{
$query[] = "zre2_listingsvp.combustivel = '$_GET[search_combustivel]' ";
}

if(!empty($_GET[search_quilometragem]))
{
$query[] = "zre2_listingsvp.quilometragem = '$_GET[search_quilometragem]' ";
}

if(!empty($_GET[search_price]))
{
$query[] = "zre2_listingsvp.price = '$_GET[search_price]' ";
}

if(!empty($_GET[codigo_clienteID]))
{
$query[] = "zre2_listingsvp.codigo_clienteID = '$_GET[codigo_clienteID]' ";
}

if(!empty($_GET[search_cidade]))
{
$query[] = "zre2_listingsvp.cidade = '$_GET[search_cidade]' ";
}

//inseri:
if(!empty($_GET[airbag]))
{
$query[] = "zre2_listingsvp.airbag = 'y' ";
}

if(!empty($_GET[alarme]))
{
$query[] = "zre2_listingsvp.alarme = 'y' ";
}

if(!empty($_GET[arcondicionado]))
{
$query[] = "zre2_listingsvp.arcondicionado = 'y' ";
}

if(!empty($_GET[arquente]))
{
$query[] = "zre2_listingsvp.arquente = 'y' ";
}

if(!empty($_GET[blindagem]))
{
$query[] = "zre2_listingsvp.blindagem = 'y' ";
}

if(!empty($_GET[cambioautomatico]))
{
$query[] = "zre2_listingsvp.cambioautomatico = 'y' ";
}

if(!empty($_GET[cdplayer]))
{
$query[] = "zre2_listingsvp.cdplayer = 'y' ";
}

if(!empty($_GET[desembacadortraseiro]))
{
$query[] = "zre2_listingsvp.desembacadortraseiro = 'y' ";
}

if(!empty($_GET[direcaohidraulica]))
{
$query[] = "zre2_listingsvp.direcaohidraulica = 'y' ";
}

if(!empty($_GET[dvdplayer]))
{
$query[] = "zre2_listingsvp.dvdplayer = 'y' ";
}

if(!empty($_GET[farolneblina]))
{
$query[] = "zre2_listingsvp.farolneblina = 'y' ";
}

if(!empty($_GET[freiosabs]))
{
$query[] = "zre2_listingsvp.freiosabs = 'y' ";
}

if(!empty($_GET[peliculaescura]))
{
$query[] = "zre2_listingsvp.peliculaescura = 'y' ";
}

if(!empty($_GET[rastreador]))
{
$query[] = "zre2_listingsvp.rastreador = 'y' ";
}

if(!empty($_GET[rodaligaleve]))
{
$query[] = "zre2_listingsvp.rodaligaleve = 'y' ";
}

if(!empty($_GET[sensorchuva]))
{
$query[] = "zre2_listingsvp.sensorchuva = 'y' ";
}

if(!empty($_GET[sensorestacionamento]))
{
$query[] = "zre2_listingsvp.sensorestacionamento = 'y' ";
}

if(!empty($_GET[tetosolar]))
{
$query[] = "zre2_listingsvp.tetosolar = 'y' ";
}

if(!empty($_GET[travaeletrica]))
{
$query[] = "zre2_listingsvp.travaeletrica = 'y' ";
}

if(!empty($_GET[vidroeletrico]))
{
$query[] = "zre2_listingsvp.vidroeletrico = 'y' ";
}
//fim inserção



if(!empty($_GET[Data_anuncio]))
{
$MyDate = strtotime("-$_GET[Data_anuncio]");
$query[] = "zre2_listingsvp.DateAdded >= '$MyDate' ";
}

if(!empty($query))
{
$MyQuery = implode(" and ", $query);

$MyQuery = "and ".$MyQuery;
}


////////////////////////////////////////////////////////////
////////// order by

$order = array();

if(!empty($_GET[orderby]))
{
$MyOrder = explode("|", $_GET[orderby]);

while(list(,$ov) = each($MyOrder))
{

if($ov == "endereco")
{
$order[] = " zre2_listingsvp.endereco asc ";
}
//inseri:
if($ov == "tipo")
{
$order[] = " zre2_listingsvp.tipo asc ";
}

if($ov == "marca")
{
$order[] = " zre2_listingsvp.marca asc ";
}

if($ov == "modelo")
{
$order[] = " zre2_listingsvp.modelo asc ";
}

if($ov == "cor")
{
$order[] = " zre2_listingsvp.cor asc ";
}

if($ov == "anofab")
{
$order[] = " zre2_listingsvp.anofab asc ";
}

if($ov == "anomod")
{
$order[] = " zre2_listingsvp.anomod asc ";
}

if($ov == "motorizacao")
{
$order[] = " zre2_listingsvp.motorizacao asc ";
}

if($ov == "combustivel")
{
$order[] = " zre2_listingsvp.combustivel asc ";
}

if($ov == "quilometragem")
{
$order[] = " zre2_listingsvp.quilometragem asc ";
}

if($ov == "price")
{
$order[] = " zre2_listingsvp.price asc ";
}

if($ov == "cidade")
{
$order[] = " zre2_listingsvp.cidade asc ";
}
}
}
else
{
if(!empty($_GET[tipo]))
{
$order[] = " zre2_listingsvp.tipo asc ";
}

if(!empty($_GET[marca]))
{
$order[] = " zre2_listingsvp.marca asc ";
}

if(!empty($_GET[modelo]))
{
$order[] = " zre2_listingsvp.modelo asc ";
}

if(!empty($_GET[cor]))
{
$order[] = " zre2_listingsvp.cor asc ";
}

if(!empty($_GET[anofab]))
{
$order[] = " zre2_listingsvp.anofab asc ";
}

if(!empty($_GET[anomod]))
{
$order[] = " zre2_listingsvp.anomod asc ";
}

if(!empty($_GET[motorizacao]))
{
$order[] = " zre2_listingsvp.motorizacao asc ";
}

if(!empty($_GET[combustivel]))
{
$order[] = " zre2_listingsvp.combustivel asc ";
}

if(!empty($_GET[quilometragem]))
{
$order[] = " zre2_listingsvp.quilometragem asc ";
}

if(!empty($_GET[Price]))
{
$order[] = " zre2_listingsvp.Price asc ";
}

if(!empty($_GET[cidade]))
{
$order[] = " zre2_listingsvp.cidade asc ";
}

}

if(count($order) > '0')
{
$MyOrder = implode(", ", $order);

}

if(empty($MyOrder))
{
$MyOrder = " order by zre2_listingsvp.PriorityLevel desc, zre2_listingsvp.DateAdded desc";

}
else
{
$MyOrder = " order by zre2_listingsvp.PriorityLevel desc, $MyOrder";

}


if(!empty($_GET[Start]))
{
$Start = $_GET[Start];
}
else
{
$Start = '0';
}

$ByPage = '3';

$q1 = "select * from zre2_listingsvp where zre2_listingsvp.ListingvpID = zre2_listingsvp.ListingvpID and zre2_listingsvp.AccountStatus = 'active' $MyQuery $MyOrder limit $Start, $ByPage ";
$qnav = "select * from zre2_listingsvp where zre2_listingsvp.ListingvpID = zre2_listingsvp.ListingvpID $MyQuery";
$r1 = mysql_query($q1) or die(mysql_error());

$lrows = mysql_num_rows($r1);


if($lrows > '0')
{


$cont = 0;
while($a1 = mysql_fetch_array($r1))

{

if(!empty($a1[image]))
{
$images = explode("|", $a1[image]);
$MyImage = $images[0];

if ($cont > 3) {
//$ListingTablevp .= "</tr><tr>";



$cont = 0;

}
$cont++;

$ListingTablevp .= "<td><table width=150 cellpadding=0 cellspacing=0 class=borda4 align=center onmouseover=\"this.style.background='#ffffff'\" onmouseout=\"this.style.background='#f8f8f8'; this.style.cursor='hand'\" onClick=\"window.open('anunciovp_teste.php?id=$a1[ListingvpID]', 'mainFrame')\"><tr><td><table align=center width=100%><tr><td align=center><table cellspacing=0 cellpadding=0 width=100%><tr width=100% align=center><td><img src=\"figura_anuncio_particular/figura_anuncio_particular.gif\"></td></tr></table><table width=100%><tr><td class=text12 align=center><img src=\"fotos_anuncios/$MyImage\" class=infoBoxContents_2 align=center width=132 height=86></td></tr></table><table width=100%><tr><td class=text12 align=left>&#8250 Anúncio:</td><td class=text12 align=right>$a1[ListingvpID]</td></tr></table><table width=144><tr><td class=text12 align=left>&#8250 Veículo:</td><td class=text12 align=right>$a1[tipo]</td></tr></table><table width=100%><tr><td class=text12 align=left>&#8250 Modelo:</td><td class=text12 align=right>$a1[modelo]</td></tr></table><table width=100%><tr><td class=text12 align=left>&#8250 Fabricação:</td><td class=text12 align=right>$a1[anofab]</td></tr></table><table width=100%><tr><td class=text12 align=left>&#8250 Preço:</td><td class=text12 align=right>$a1[Price]</td></tr></table></td></tr></table></td></tr></table></td>";

}

}


$rnav = mysql_query($qnav) or die(mysql_error());
$rows = mysql_num_rows($rnav);

if($rows > $ByPage)
{

//tabela link de páginas
$ListingTablevp .= "<table border=1 align=center width=468 cellspacing=0 cellpadding=0>";
$ListingTablevp .= "<br><td align=center><font class=text6> | ";

$pages = ceil($rows/$ByPage);

for($i = 0; $i <= ($pages); $i++)

{
$PageStart = $ByPage*$i;

$i2 = $i + 1;

if($PageStart == $Start)
{
$links[] = " <span class=menulink16>$i2</span>";

}

elseif($PageStart < $rows)
{
$links[] = " <a class=menulink16 href=\"buscadorvp_teste.php?Start=$PageStart&cvp=$_GET[cvp]&svp=$_GET[svp]\">$i2</a>";

}

}

$links2 = implode(" | ", $links);

$ListingTablevp .= $links2;

$ListingTablevp .= " | </td>";

$ListingTablevp .= "</table>";

}

}

else
{

$ListingTablevp = "<br><br><br><br><br><br><table><tr><td width=468 height=28 align=center class=messageStackError><img src=\"../../anunciar/images/icons/warning.gif\">&nbsp;&nbsp;Nenhum anúncio encontrado!</td></tr></table><br><br><br><br><br><br>";
//$ListingTablevp = "<br><br><br><br><br><br><table width=468><tr><td align=center><font class=text13>Nenhum anúncio encontrado!</font></td></tr></table><br><br><br><br><br><br><br>";
}

require_once("../../Templates_base/TemplateMiddle_teste.php");

?>


12/03/2008 1:37pm (~16 anos atrás)

It...Zhak disse:
O código abaixo eu testei em um servidor linux e funcionou perfeitamente!

<?php
$host = "host";
$user = "usuario_do_banco";
$senha = "senha_do_banco";
$db = "banco_de_dados";
$tabela = "nome_da_tabela";
$conn = mysql_connect($host,$user,$senha);
$banco = mysql_select_db($db);
$sql = mysql_query("select * from $tabela ") or die(mysql_error());
?>

<html>
<body>

<?php
$total = mysql_num_rows($sql);
$qtd_colunas = 3; ?>

<table width="600" border="0">
<?php
if( $total > 0 )
{
for ($i=0; $i<$total; $i++)
{
echo "<tr>";
$dados = mysql_fetch_array($sql);
for ($j=0; $j<$qtd_colunas; $j++)
{
$nm_coluna = $dados[$j];
echo "<td>$nm_coluna</td>";
}
echo "</tr>";
}
}
else
{
echo "Nenhum registro encontrado";
}
?>
</table>
</body>
</html>
11/09/2006 3:40pm (~17 anos atrás)

muito bom esse artigo!
17/07/2006 1:53pm (~18 anos atrás)

Daniel Filho disse:
<?
###########################################################################
## Busca no Banco de dados pelas informações dos títulos das subcategorias
###########################################################################
include('conexao.inc.php'); // executa a função que faz a conexão com o banco de dados
$sql = "SELECT * FROM produtos_subcategoria WHERE `id_language` = '$idioma' AND `id_categoria` = '19'";//busca
$res = mysql_query( $sql ) or die ("Erro de query");//executa query
//armazena o conteudo dos campos em variavies amigaveis
$colunas = "2";//numero de colunas onde o resultado será exibido
// Distribui os dados da busca por colunas
while( $result = mysql_fetch_array ( $res )){
$id_subcategoria = $result['id_subcategoria'];
$id_language = $result['id_language'];
$titulo_subcategoria = $result['titulo'];
if ($total %2 == 0){
echo "<tr>";
echo "<td width='49%' class='linkcat'>- <a href='view_results_subcategorias.php?sessao=1&id_language=".$id_language."&id_sub_categoria=".$id_subcategoria."' class='linkcat'>".$titulo_subcategoria."</a></td>";
$total++;
}else{
echo "<td width='49%' class='linkcat'>- <a href='view_results_subcategorias.php?sessao=1&id_language=".$id_language."&id_sub_categoria=".$id_subcategoria."' class='linkcat'>".$titulo_subcategoria."</a></td>";
echo "</tr>";
$total++;
}
}
?>
06/06/2006 8:32am (~18 anos atrás)

Boa noite galera deu uma olhada tb sou novo em php não manjo muita coisa mais achei o erro abaixo esta o codigo correto.

<?php
$host = "localhost";
$user = "teste";
$senha = "123456";
$db= "banco de dados"; // Isso estava faltando pois ele pede em baixo // $banco = mysql_select_db($db); // mais o $db naum existia ok.
$tabela = "produtos";
$conn = mysql_connect($host,$user,$senha);
$banco = mysql_select_db($db);
$sql=mysql_query("select * from $tabela ") or die(mysql_error()); // adicionei o mysql_error para facilitar um pouco na hora que der pau



echo "<table width=100 border=0>";



$total = mysql_num_rows($sql);
?>

<?php
$colunas = "3";
?>

<?php


if ($total>0) {

for($i=0;$i<$total;$i++) {

if (($i%$colunas)==0) {
echo "</tr>"; //oque é isto?
echo "<tr>";
}


?>



<?php
$dados = mysql_fetch_array($sql);
$nome_port = $dados["nome_port"];

print "<td><table width=\"140\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td>$nome_port</td>
</tr>
</table></td> ";


}
} else {
echo "Nenhum registro encontrado";
}
?>

Não sei se vai ajudar qualquer duvida manda um email ai ok não sou expert mais quebro um galho ok.
06/02/2006 2:36pm (~18 anos atrás)

Fabio Rocha disse:
Tipo resultando em 3 colunas 9 imagens ai voce quer mostrar as outras 9 com uma paginação
11/01/2006 9:49am (~18 anos atrás)

Este codigo eu usei em uma loja virtual que estou desenvolvendo. Ele faz a exibição dos dados em 3 colunas - é so alterar a quantidade de colunas a ser exibida. Segue o código abaixo modificado para este fim.
--------------------------------------------
<?php
//Chama produtos no banco de dados e realiza o loop

$sql = mysql_query("SELECT * FROM imagens WHERE cat='$cat' ORDER BY id_image DESC LIMIT 6"); ?>
<table width="400" border="0" align="center" cellpadding="10" cellspacing="0" >
<?
$total = mysql_num_rows($sql);
// Exibe um total de 3 colunas
$colunas = "3";

if ($total>0) {
for ($i = 0; $i < $total; $i++) {
if (($i%$colunas)==0) { ?>
<tr>
<?
}

$dados = mysql_fetch_array($sql);

$id_image = $dados["id_image"];
$imagem = $dados["imagem"];
$width = $dados["width"];
$height = $dados["height"]; ?>
<td> <TABLE WIDTH=120 BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD COLSPAN=3> <IMG SRC='images/moldura_01.jpg' WIDTH=120 HEIGHT=11 ALT=''></TD>
</TR>
<TR>
<TD> <IMG SRC='images/moldura_02.jpg' WIDTH=12 HEIGHT=104 ALT=''></TD>
<TD WIDTH=94 HEIGHT=104 > <a href="javascript:;" onClick="MM_openBrWindow('exibe_fotos.php?id_image=<? echo $id_image ?>','fotos','width=<? echo $width ?>,height=<? echo $height ?>')">
<img src='images/<? echo $imagem ?>' width='94' HEIGHT=104 border="0"></a></TD>
<TD><IMG SRC='images/moldura_04.jpg' WIDTH=14 HEIGHT=104 ALT=''></TD>
</TR>
<TR>
<TD COLSPAN=3> <a href="javascript:;" onClick="MM_openBrWindow('exibe_fotos.php?id_image=<? echo $id_image ?>','fotos','width=<? echo $width ?>,height=<? echo $height ?>')">
<IMG SRC='images/moldura_05.jpg' ALT='' WIDTH=120 HEIGHT=25 border="0"></a></TD>
</TR>
</TABLE></td>
<?
} ?>
</tr>
</table>
<?
} else { ?>
<br>
<br>
<table width="90%" border="0" cellpadding="1" cellspacing="0" bgcolor="#CCCCCC" align="center" >
<tr>
<td> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" >
<tr>
<td bgcolor="#FFFFFF" > <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Desculpe-
nos, mas n&atilde;o existe nenhum álbum cadastrado<br>
para esta categoria</font></div></td>
</tr>
</table></td>
</tr>
</table>
<? }
?>
16/12/2005 5:03am (~18 anos atrás)

Meu na boa não funcionou nada por favor alguém poderia postar o código todo completo como exemplo?

preciso disso o quanto antes

Fernando Santos
12/11/2005 6:53am (~18 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)