Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi pessoal, estou com um problema aqui, pois esta me faltando ideias para o seguinte:
quero uma tabela(html) que contenha 6 campos. no primeiro campo, será o nome do produto, no segundo será o seu PREÇO. quero que os valores sejam destribuidos verticalmente. depois de prenchido 43 registros(vindos do DB) ai ele começe a prencher a outra coluna(a 3ª) de onde ele parou na coluna anterior, e depois faça o mesmo na proxima coluna, preencha o 5º campo com o restante dos registros.
no meu caso é o seguinte:
é uma tabela que vai mostrar o produto com o seu respectivo preço, so que separado em colunas, vejam um exemplo:
By imfaber at 2007-08-19
Como eu poderia fazer o que eu estou querendo?
Muito obrigado.
você pode usaro forou o while. logicaé o seguintefor($i=1; $i<mysql-num_rows(//consulta ao banco);$i++){$dados = mysql_fetch_assoc(//consulta ao banco);}//aqui a logica para gerar o loop de trazer os dados. while($dados = mysql_fetch_array(//consulta)){//traz os dados e faz o loop }bem para você formatar faz um th antes do for ou do whilecom os campos. e entre as chaves pede para imprimir a quantidade de colunaslogina simples.<tr><th>NOme</th><th>Dados</th></tr>while($dados = mysql_fetch_array(//consulta)){//traz os dados e faz o loop echo "<tr><td>$dados[nome];</td><td>$dados[dados];</td></tr>";}ve se te ajuda
Não entendi, cara.o que eu quero exatamente é o seguinte:quero que seja exibido os resultados normalmente, so que em vez de exibir normalmente, um embaixo do outro extencivamente, seja exibido até um certo ponto da pagina e que quando alcançasse um numero determinado de registros que estão sendo destribuidos um em baixo do outro, ele passe para a coluna ao lado, inserindo outros produtos e preços.eu não consigo encontrar a solução para isso.por favor, se puder me mostre como fazer isso, pois acho que somente a logica não basta, pois ainda sou um pouco iniciante em PHP.Muito obrigado.
existem N modos de fazer issoa forma mais prática é construir uma tabela do lado da outra.a primeira abre no registro 1 e fecha no registro 53<table>...</table>a segunda abre no 54 e fecha no 107<table>...</table>e assim por diante.isso tem um porém! se a resolução da tela do usuario não comportar as 3 tabelas uma ao lado da outra, as tabelas serão jogadas pra baixo como uma quebra de linha. A não ser que você coloque-as dentro de outra tabela e especifique a coluna como NOWRAPSe quiser fazer tudo numa tabela só poderá utilizar o objeto createElement
existem N modos de fazer issoa forma mais prática é construir uma tabela do lado da outra.a primeira abre no registro 1 e fecha no registro 53<table>...</table>a segunda abre no 54 e fecha no 107<table>...</table>e assim por diante.isso tem um porém! se a resolução da tela do usuario não comportar as 3 tabelas uma ao lado da outra, as tabelas serão jogadas pra baixo como uma quebra de linha. A não ser que você coloque-as dentro de outra tabela e especifique a coluna como NOWRAPSe quiser fazer tudo numa tabela só poderá utilizar o objeto createElement
Me dê um exemplo de como ficaria meu comando MYSQL.é que eu não posso fazer isso tomando como ponto de referencia o meu ID da tabela, pois o menor valor é 45!como é que eu posso fazer o comando mysql para que faça isso do geito que voce falou?muito obrigado.
nao é no mysql, é no html
achei sua questão interessante e fiz um exemplo rápido utilizando o segundo metodo que mencionei:
<script language=javascript> data_qtd = 30; // total records lines_max = 10; // records limit per line cols_max = 3; // cols limit tbname = "tb1"; // table id or name function setar_obj(eln){ var rr = false; if(document.all){ rr = document.all[eln]; }else{ if(document[eln]){ rr = document[eln]; }else{ rr = document.getElementById(eln); } } return rr; } l_ini = 1; cols_total = Math.ceil( data_qtd / lines_max ); td_prefix = "td_"; fill_1 = "_A_"; fill_2 = "_B_"; name_pre = "col"; document.write("<table border=1 name=" + tbname + " id=" + tbname + ">"); document.write("<tbody>"); document.write("</tbody>"); document.write("</table>"); tagtb = new Array(); tagtr = new Array(); tagtd = new Array(); b = 0; tagtb[b] = setar_obj( tbname ); tagtb[b] = tagtb[b].getElementsByTagName("tbody")[0]; c = 0; s = false; for( j = 0; j < lines_max; j++ ){ tagtr[j] = document.createElement("tr"); for( i = 0; i < cols_total; i++ ){ qtd = parseInt( lines_max * i ); c_data = parseInt( qtd + j ); if( c > data_qtd ){ c_data = "-"; } c++; if(((j%2)/2) == 0){ if(((i%2)/2) == 0){ td_color = "FFFFFF"; }else{ td_color = "CCCCCC"; } }else{ if(((i%2)/2) == 0){ td_color = "CCCCCC"; }else{ td_color = "FFFFFF"; } } td1_content = c_data; td2_content = c_data; td_name = name_pre + i + fill_1 + td_prefix + j; tagtd[j] = document.createElement("td"); tagtd[j].setAttribute("name", td_name ); tagtd[j].setAttribute("id", td_name ); tagtd[j].setAttribute("bgColor", "#"+td_color ); tagtd[j].setAttribute("right", "left" ); tagtd[j].appendChild( document.createTextNode( td1_content ) ); tagtr[j].appendChild( tagtd[j] ); td_name = name_pre + i + fill_2 + td_prefix + j; tagtd[j] = document.createElement("td"); tagtd[j].setAttribute("name", td_name ); tagtd[j].setAttribute("id", td_name ); tagtd[j].setAttribute("bgColor", "#"+td_color ); tagtd[j].setAttribute("align", "left" ); tagtd[j].appendChild( document.createTextNode( td2_content ) ); tagtr[j].appendChild( tagtd[j] ); } tagtb[b].appendChild( tagtr[j] ); }</script>
você pode usaro forou o while. logicaé o seguintefor($i=1; $i<mysql-num_rows(//consulta ao banco);$i++){$dados = mysql_fetch_assoc(//consulta ao banco);}//aqui a logica para gerar o loop de trazer os dados. while($dados = mysql_fetch_array(//consulta)){//traz os dados e faz o loop }bem para você formatar faz um th antes do for ou do whilecom os campos. e entre as chaves pede para imprimir a quantidade de colunaslogina simples.<tr><th>NOme</th><th>Dados</th></tr>while($dados = mysql_fetch_array(//consulta)){//traz os dados e faz o loop echo "<tr><td>$dados[nome];</td><td>$dados[dados];</td></tr>";}ve se te ajuda