Jump to content

php - criar dinamicamente grades com Div


Recommended Posts

Posted

Prezados...

Já vasculhei a google e não encontrei nada de jeito..  :wallbash:

Preciso criar/gerar a estrutura abaixo dinamicamente com PHP utilizando os dados que vêm da base de dados:

<div class="row">
<div class="asinItem">
	ITEM 1
</div><div class="asinItem">
	ITEM 2
</div>
</div>

<div class="row">
<div class="asinItem">
	ITEM 3
</div><div class="asinItem">
	ITEM 4
</div>
</div>

<div class="row">
<div class="asinItem">
	ITEM 5
</div><div class="asinItem">
	ITEM 6
</div>
</div>

grato pela vossa atenção

Cumps

PS

-------Assinatura?

Posted

Qual é a dúvida em concreto?

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Posted

Qual é a dúvida em concreto?

a dúvida é como gerar a estrutura acima utilizando o PHP... e os dados vêm de uma base de dados MySQL...

ou seja.. se eu tiver dois items na base de dados.. devem ser exibidos numa linha só... de 3 à 4 items devem ser exibidos na proxima linha...

assim sucessivamente... mas isto, sem utilizar tabelas...

grato pela atenção

Cumps

PS

-------Assinatura?

Posted

Alguma coisa tens que ter já feito, não estás à espera dum exemplo completo, pois não?

Quando quiseres fazer sub-conjuntos de X elementos de um grupo maior, lembra-te sempre que o resto da divisão entre o número do item actual e X é zero quando esse número é um múltiplo de X.

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Posted

Alguma coisa tens que ter já feito, não estás à espera dum exemplo completo, pois não?

...

não.. não estou a espera de um exemplo completo..

tudo que estou a conseguir fazer até agora é utilizar a função while e estarem todos na mesma linha... mas o meu problema é como ter os items é linhas separadas...

eu poderia deixar que com a dimensão do browser fosse feita uma quebra automática... mas de o utilizar tiver um ecrã maior... aparecerá mais de dois items numa só linha...

....

Quando quiseres fazer sub-conjuntos de X elementos de um grupo maior, lembra-te sempre que o resto da divisão entre o número do item actual e X é zero quando esse número é um múltiplo de X.

não entendi nada

Cumps

PS

-------Assinatura?

Posted
tudo que estou a conseguir fazer até agora é utilizar a função while e estarem todos na mesma linha... mas o meu problema é como ter os items é linhas separadas...
Quando quiseres fazer sub-conjuntos de X elementos de um grupo maior, lembra-te sempre que o resto da divisão entre o número do item actual e X é zero quando esse número é um múltiplo de X.

Não consegues aproveitar este facto matemático a teu favor? Ora pensa lá um bocadinho.

E mete o código relevante, que é mais fácil aparecer alguém a ajudar.

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Posted

Isto é o que tenho:

    $strQuery = "SELECT id, nome FROM items";
    $resultado = mysql_query($strQuery, $link) or die (mysql_error());
    
    echo "<div class='row'>";
    while($row = mysql_fetch_array($resultado)){         
        echo "<div class='asinItem'>
                {$row[1]}
        </div>";
    }
   echo "</div>";

Grato pela atenção...

Cumps

-------Assinatura?

Posted

Neste momento aquilo que tens é uma div de class "row" com uma série de divs todas lá dentro. O que pretendes é criar uma div de class "row" para cada dois elementos.

Já reparaste que se tiveres um contador dos elementos que já obtiveste da base de dados pode dar jeito?

Usando este contador $x, Para que valores de $x é que precisas de abrir a <div class="row">? E quando é que precisas de a fechar?

Não respondo a dúvidas por mensagem.

Posted

prezados...

já lutei bastante e nada:

cheguei a este código:

<?php

$link = mysql_connect("localhost", "root", "root") or die (mysql_error());
$bd = mysql_select_db("sistecpubbd", $link) or die (mysql_error());

$query = "SELECT * FROM anuncio LIMIT 10";
$result = mysql_query($query) or die (mysql_error());
echo "<div style='border: 1px solid'>";	
$count = 0;
while ($row = mysql_fetch_assoc($result)){

	$count++;

	echo "<div class='row'>";
		if ($count == 1 || ($count % 2) == 0){
			echo "<div class='col'>
				{$row['titulo']}
			</div>";			
		};
	echo "</div>";
}

echo "</div>";

$link = mysql_close();
?>

e tudo que consigo é isto:

<div style='border: 1px solid'>
<div class='row'>
	<div class='col'>TELEFONE SKIPE USB 101</div>
</div>

<div class='row'>
	<div class='col'>DESENROLADOR TEAM</div>
</div>

<div class='row'>
</div>

<div class='row'>
	<div class='col'>VERBATIM PEN 4GB USB 2.0 YELLOW</div>
</div>

<div class='row'>
</div>

<div class='row'>
	<div class='col'>JENGA WORLD TOUR WII</div>
</div>

<div class='row'>
</div>

<div class='row'>
	<div class='col'>LOGITECH SPEAKER S315I SILVER IPOD IPHONE</div>
</div>

<div class='row'>
</div>

<div class='row'>
	<div class='col'>IBM IMPRESSORA INFOPRINT 1612N</div>
</div>
</div>

o que está errado..

grato pela atenção

Cumps

PS

-------Assinatura?

Posted

Foca-te neste pedaço:

$count = 0;
while ($row = mysql_fetch_assoc($result)){

$count++;

echo "<div class='row'>";

if ($count == 1 || ($count % 2) == 0)
	echo "<div class='col'>{$row['titulo']}</div>";

echo "</div>";
}

Está a fazer o que queres? Não. E o que é que queres? Queres fechar e voltar a abrir a div com a classe row quando a condição se verifica; não é o que esse código faz...

Pensa antes de meteres as mãos no teclado.

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.