doulo4ever Postado Janeiro 7, 2005 Denunciar Share Postado Janeiro 7, 2005 Olá, sobre o código abaixo:$sql = mysql_query("select * from datascomemorativas where mes like 1"); echo "<table border=0 cellpading=0 cellspacing=0 width=100%><tr>"; for($i=0;$i<mysql_num_rows($sql);$i++){ $id_data = @mysql_result($sql,$i,"id_data"); $nome = @mysql_result($sql,$i,"nome"); $dia = @mysql_result($sql,$i,"dia"); $mes = @mysql_result($sql,$i,"mes"); $descricao = @mysql_result($sql,$i,"descricao"); echo "<tr>"; echo "<td><font face=Verdana size=1> $dia · $nome</font></td>"; $i++; $id_data = @mysql_result($sql,$i,"id_data"); $nome = @mysql_result($sql,$i,"nome"); $dia = @mysql_result($sql,$i,"dia"); $mes = @mysql_result($sql,$i,"mes"); $descricao = @mysql_result($sql,$i,"descricao"); echo "<td><font face=Verdana size=1> $dia · $nome</font></td>"; echo "</tr>"; } echo "</table>";Ele está listando os dados da seguinte forma:1 23 45 6....Como devo customizá-lo para que ordene da seguinte forma:1 42 53 6....Já tentei um monte de bobera, mas não consigo!Alguém pode me ajudar? Algum moderador ou usuário? Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Janeiro 7, 2005 Denunciar Share Postado Janeiro 7, 2005 Você fez o código e não consegue modificar, cara? Quanto a isso você vai ter que aprender alguma coisa do básico pra entender o que está sendo feito. É tão simples que se você entender o que acontece no script você vai saber resolver.· http://br.php.net/function.mysql-result· http://br.php.net/manual/pt_BR/language.op...s.increment.php Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 doulo4ever Postado Janeiro 7, 2005 Autor Denunciar Share Postado Janeiro 7, 2005 O duro é que não faz muito tempo que comecei a mexer e não to manjando do negócio pra valer ainda, to aprendendo bastante coisa nova ainda! Por exemplo...ontém que fui começar a me aventurar a fazer relatórios em PDF! Eu acho que tem que dividir o total de resultados e listar metade em uma coluna e a outra metade em outra coluna, é isso?Agradeço muito se alguém puder me ajudar! Sei que tem bastante gente aqui que mexe com isso faz tempo e entende muito bem do negócio! Valeu!!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Janeiro 7, 2005 Denunciar Share Postado Janeiro 7, 2005 Aquilo ali não tem nada de mais, nada que só quem mexa com PDF vai poder ajudar.É super simples. Acho que você deveria ao menos tentar dar uma lida no que eu passei ao invés de esperar alguém postar a coisa pronta pra você... Assim você aprende muito mais! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 doulo4ever Postado Janeiro 7, 2005 Autor Denunciar Share Postado Janeiro 7, 2005 Entrei lá, mas tá foda de entender direito viu... Pra que serve na verdade aquele "mysql_fetch_array"?Quando e como usar?Olha...tentei fazer um negócio aqui:$sql = mysql_query("select * from datascomemorativas where mes like 2"); $total = mysql_num_rows($sql); $metade = round($total/2); echo "<table width='100%' border='0' cellspacing='1' cellpadding='1' style='border-collapse: collapse' bordercolor='#111111'><tr>"; echo "<td width='50%' align='left' valign='top' bgcolor='#BFC5CB'>"; for($i=0;$i<$metade;$i++){ $id_data = @mysql_result($sql,$i,"id_data"); $nome = @mysql_result($sql,$i,"nome"); $dia = @mysql_result($sql,$i,"dia"); $mes = @mysql_result($sql,$i,"mes"); $descricao = @mysql_result($sql,$i,"descricao"); if($nome) { if($descricao==''){ echo "<font face=Verdana size=1> $dia · $nome</font><br>"; }else{ echo "<font face=Verdana size=1> $dia · <a href='index.php?acao=exibe&id_data=$id_data'><u>$nome</u></a></font><br>"; } } } echo "</td>"; echo "<td width='50%' align='left' valign='top' bgcolor='#BFC5CB'>"; for($i=$metade;$i>$metade;$i++){ $id_data = @mysql_result($sql,$i,"id_data"); $nome = @mysql_result($sql,$i,"nome"); $dia = @mysql_result($sql,$i,"dia"); $mes = @mysql_result($sql,$i,"mes"); $descricao = @mysql_result($sql,$i,"descricao"); if($nome) { if($descricao==''){ echo "<font face=Verdana size=1> $dia · $nome</font><br>"; }else{ echo "<font face=Verdana size=1> $dia · <a href='index.php?acao=exibe&id_data=$id_data'><u>$nome</u></a></font><br>"; } } } echo "</td>"; echo "</tr></table>";Dividi o resultado total e coloquei para listar a primeira metade na primeira coluna, e o restante na outra coluna, a primeira metade listou normalmente, mas a segunda ficou em branco!A tese tá certa? Ou não tem nada a ver?Valeu! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Janeiro 7, 2005 Denunciar Share Postado Janeiro 7, 2005 Vamos lá, vou te explicar, então...Você sabe o que é uma array? Como adicionar elementos? Como fazer um for que vai imprimindo todos os valores dela? Sabe fazer um foreach? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 doulo4ever Postado Janeiro 8, 2005 Autor Denunciar Share Postado Janeiro 8, 2005 Tipo, quando fazemos uma consulta no mysql ou em algum banco, os resultados vêm em arrays!? É isso?A diferença entre o for e o foreach é que o for dá pra escolher a partir de que ponto queremos começar a exibir as arrays, ou tem mais coisas?Se puder dar uma iluminada melhor, agradeço muito! ...sobre a ordenação das colunas...dá pra fazer do jeito que estou tentando ali? ou tem jeito mais fácil? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Janeiro 8, 2005 Denunciar Share Postado Janeiro 8, 2005 A questão não é a ordenação das colunas, caraA questão é que você pegou um script e não sabe nem o que ele faz! Essa é a questão!Tipo, quando fazemos uma consulta no mysql ou em algum banco, os resultados vêm em arrays!? É isso?E isso aí...A diferença entre o for e o foreach é que o for dá pra escolher a partir de que ponto queremos começar a exibir as arrays, ou tem mais coisas?Não, cara, não é isso, não. Você está querendo correr sem saber andar, cara. Se você não conhece o for, falta lógica de programação aí. Falta o feijão com arroz.· http://br.php.net/manual/pt_BR/control-structures.for.php· http://br.php.net/manual/pt_BR/control-str...res.foreach.phpDá uma lida... se tiver alguma dúvida sobre eles, poste aí... E um while? Você sabe o que faz um while? Um if e um else você sabé né? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 doulo4ever Postado Janeiro 8, 2005 Autor Denunciar Share Postado Janeiro 8, 2005 Sei que dá pra listar os dados com while também!Mexer com if e else eu to sabendo sim!Olha, tava dando uma olhada, fiz dessa forma:$sql = mysql_query("select * from datascomemorativas where mes like 2"); $total = mysql_num_rows($sql); $metade = round($total/2); echo "<table width='100%' border='0' cellspacing='1' cellpadding='1' style='border-collapse: collapse' bordercolor='#111111'><tr>"; echo "<td width='50%' align='left' valign='top' bgcolor='#BFC5CB'>"; for($i=0;;$i++){ $id_data = @mysql_result($sql,$i,"id_data"); $nome = @mysql_result($sql,$i,"nome"); $dia = @mysql_result($sql,$i,"dia"); $mes = @mysql_result($sql,$i,"mes"); $descricao = @mysql_result($sql,$i,"descricao"); if($i>$metade){ break; }else{ if($nome){ if($descricao==''){ echo "<font face=Verdana size=1> $dia · $nome</font><br>"; }else{ echo "<font face=Verdana size=1> $dia · <a href='index.php?acao=exibe&id_data=$id_data'><u>$nome</u></a></font><br>"; }} } } echo "</td></tr></table>";Utilizei de outra forma o laço for! com a expressão do meio vazia! daí utilizei if($i>$metade){ para exibir somente até a metade dos resultados em uma coluna, dá uma olhada lá! tá certo dessa forma?Agora preciso dar um jeito de mostrar o resto na outra coluna!É por aí mesmo? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Janeiro 8, 2005 Denunciar Share Postado Janeiro 8, 2005 Não... porque você não faz aquela verificação direto no for? o for foi feito justamente pra isso! A 2ª expressão diz ao for quando parar. Por isso eu acho que você precisa entender antes de continuar. Fazer remendos sem saber o que se está fazendo, cara, não é legal!Vamos começar do início?Nem o for, nem o while tem necessariamente alguma coisa a ver com o MySQL, eles servem pra se criar loops. Por esse motivos eles são utilizados para buscar os dados que vêm do MySQL. Se você não enteder como funcionam as arrays e como funcionam essas estruturas básicas de comando, cara, você vai ficar meio boiando...Então deixe o seu script de lado por um instante e mantenha o foco em aprender essas 2 coisas:· estruturas de controle (for, while, foreach, switch, etc)· utilização de arrays (o que são, como adicionar itens, como remover itens, como fazer um loop que mostre todos os elementos de uma array)Vamos ao while:While em inglês quer dizer "enquanto". Sempre tente traduzir essas coisas, elas são meio autoexplicativas na maioria das vezes... - Certo, Error, então o que o while faz?O while executa todo o código dentro de "{}" enquanto a expressão dentro de "()" for verdadeira.- Hã? É o seguinte, veja o exemplo:$i = 0; // setando o valor inicial de $i como 0while($i < 10){ //enquanto $i for menor que 10, execute:echo $i . "<br \>"; // exibe $i$i++; // aumenta o valor de $i em 1}Isso vai gerar:0123456789- E o for? O que é o for? E o foreach?Calma aí... 1 de cada vez. O for é o irmão mais novo do while, ele é usado em casos mais específicos, mas faz praticamente a mesma coisa que o while. Em português, for significa "para" (certo, esse não é tão autoexplicativo... ).Então o for tem 3 parâmetros, que são, respectivamente:• O estado inicial: Aqui você seta como as variáveis e outras coisas vão estar no início do for• O "enquanto": Aqui é exatamente aquele mesmo parâmetro do while, ele vai executar o código entre as "{}" enquanto essa expressão for verdadeira• O "a cada loop": Aqui você vai colocar o código que será executado para cada loop que for dado, sempre no final do loop, o for vai executar esse código.Com essa informação, conseguimos fazer a mesma coisa que fizemos antes com o while, mas de forma mais otimizada:for($i=0; $i<10; $i++){ // $i começa como 0 e vai acrescentando 1 a cada loop enquanto ele for menor que 10echo $i . "<br \>"; // exibe $i}Vai gerar:0123456789- Certo Error e o foreach?O foreach, bom, pra entender o foreach você precisa entender as arrays primeiro...E aí, já sabe como elas funcionam? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 doulo4ever Postado Janeiro 8, 2005 Autor Denunciar Share Postado Janeiro 8, 2005 - Não, Error, me explica direito como as arrays funcionam pra mim saber mexer com foreach e também com switch! - E no exemplo de while abaixo....o que está sendo feito, qual a tradução? while ($coluna = @mysql_fetch_array($query)){ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Janeiro 8, 2005 Denunciar Share Postado Janeiro 8, 2005 De novo você querendo botar a carroça na frente dos bois.Você tem que aprender lógica de programação antes de tentar programar, cara, não dá pra correr sem saber andar...Lembra do colégio? Das matrizes? Arrays são matrizes.Mas em programação elas funcionam um pouco diferente. É como se elas fossem uma variável que guarda N outras variáveis.Cada elemento da array tem um nome, um índice.Então, por exemplo:$array = array("valor1","indice2"=>"valor2","indice3"=>"valor3","valor4");$array[5]= 'foobar';$array['foo'] = 'bar';Você tem uma array onde:0 = "valor1" // o indice sempre começa a contar do 0"indice2" = "valor2" // quando você não põe nada como índice ela dá um índice automático e numérico, quando você especifica o índice, o valor fica atrelado a ele"indice3" = "valor3"1 = "valor4" // ele dá o nº 1 pro valor4 porque o 2 e o 3 tiveram os nomes especificados, então ele pega o numérico anterior, soma 1 e esse é o indice daquele valor5 = "foobar""foo" = "bar"Dá uma boa lida nisso, mas uma boa lida mesmo:· http://br.php.net/manual/pt_BR/language.types.array.phpAí em cima explica bastante das arrays.while ($coluna = @mysql_fetch_array($query)){Quando a isso, bom... Quando você põe simplesmente uma variável como condição para terminar um loop ou para um IF, ele vai checar se aquela variável existe, funciona como um isset($foo)A mesma coisa vale pro while, aquilo ali em cima funciona como um:"Enquanto $coluna existir..."Ao mesmo tempo ele dá um valor a ela, então:"Enquanto $coluna, tendo como valor (@mysql_fetch_array($query)) existir..."O mesmo princípio é usado em arrays, você coloca um valor que vai aumentando e verifica se a $array[$i] existem, quando o $i passar do último item da array, vai retornar FALSE. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 doulo4ever Postado Janeiro 8, 2005 Autor Denunciar Share Postado Janeiro 8, 2005 Acho que tá melhor esclarecido pra mim como utilizar esses comandos!Mas não estou conseguindo listar corretamente em duas colunas, já me conformei com a ordem anterior mesmo!Afinal trabalho com coisas que não tem nada a ver com programação, mexo com importação de distribuição de produtos, fuço no PHP mais como um robby mesmo, gosto de fuçar em coisas novas, não sou programador profissional e seria muita pretenção tentar saber a fundo todas as funções e aplicações desta linguagem.Tenho um site aqui na minha cidade sem fins lucrativos e utilizo o PHP apenas para desenvolver algumas coisas pra mim mesmo, o que eu tava precisando no momento era apenas inverter a ordem de aparição dos resultados. Vai ser meio difícil tentar aprender a fundo como fazer isso pois nunca fiz nenhum curso relacionado, por isso estava procurando alguém que pudesse me ajudar apenas com isso.Mas valeu de qualquer forma, entendo que é melhor explicar o caminho que se aprende melhor, mas eu só queria uma força com isso mesmo, minha intenção não é ser um expert no assunto, somente fazer minhas consultas básicas aqui já tá bom demais pra mim!falou! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Janeiro 8, 2005 Denunciar Share Postado Janeiro 8, 2005 Vou tentar te explicar...Isso é bem fácil fazer com o "FOR"Veja:for($i=1; $i<=6; $i++){echo $i."<BR>";}Agora para fazer do jeito que você quer você vai ter que achar a metade do valor de voltaque o "for" irá fazer.6 no caso é 3, mais isso você terá que fazer, em código.$total = 6;$divide = ($total / 2);for($i=1; $i<=$divide; $i++){echo $i."<BR>";}Ai para achar o valor da segunda coluna é pegar o $divide e somar com $i do loopque a cada volta será um número diferente, sendo assim você terá o resultado que espera. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 doulo4ever Postado Janeiro 8, 2005 Autor Denunciar Share Postado Janeiro 8, 2005 Olha Pessoal, pra quem precisar de um negócio parecido, o código ficou desta forma:$sql = mysql_query("select * from datascomemorativas where mes like 1"); $total = mysql_num_rows($sql); $divide = round($total/2); echo "<table width='100%' border='0' cellspacing='1' cellpadding='1' style='border-collapse: collapse' bordercolor='#111111'><tr>"; for($i=0; $i<$divide; $i++){ $coluna1 = $i; $coluna2 = ($divide + $i); $nome1 = @mysql_result($sql,$coluna1,"nome"); $nome2 = @mysql_result($sql,$coluna2,"nome"); echo "<TR>"; echo "<td width='50%' align='left' valign='top' bgcolor='#F0F0F0'>"; echo "$nome1"; echo "</TD><td width='50%' align='left' valign='top' bgcolor='#F0F0F0'>"; echo "$nome2"; echo "</TD>"; echo "</TR>"; } echo "</TABLE>";Pelo que vi na busca do fórum, muitas pessoas postaram com essa mesma dúvida e não obtiveram êxito, aí está o código para quem precisar....afinal....O PHP é uma linguagem aberta, não é....muitas pessoas vão aprendendo sobre o assunto pesquisando scripts já prontos para depois ir se aprimorando e desenvolvendo seus prórpios scripts!Acho que a função do fórum é essa também!!Até +++ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Janeiro 8, 2005 Denunciar Share Postado Janeiro 8, 2005 PHP é uma linguagem aberta sim, todos podem aprender e programar nela. A documentação está toda exposta na internet pra quem quiser aprender.O que não é grátis é o trabalho dos programadores. Estamos aqui pra ajudar quem está disposto a aprender, estamos gastando o nosso precioso tempo com a maior das boas vontades, explicando e ajudando todos os iniciantes. Se você não trabalha com isso e não tem intenção de aprender, cara, só posso te dizer pra contratar um programador.Não me entenda mal, não sou mercenário, só acho uma falta de respeito as pessoas virem aqui pedir pra que a gente passe coisas prontas. Se a sua TV estraga, você vai no Técnico eletrônico e pede pra ele consertar de graça? Quando o seu carro apresenta problema você pede pro mecânico fazer de graça?Então, cara, se você quiser aprender a linguagem, perfeito, como você viu, vou te explicar nos maiores detalhes e te dar a maior atenção do mundo, mas não venha pedir coisa pronta porque eu realmente acho falta de respeito com a gente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 doulo4ever Postado Janeiro 8, 2005 Autor Denunciar Share Postado Janeiro 8, 2005 Error, não era essa minha intenção, desculpe se você se sentiu "usado"! Na verdade, eu só precisava de uma luz de como listar daquela forma, pois não conheçoa fundo a linguagem, to pegando aos poucos esses macetes.Valeu pelas explicações.... SdsAté mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Janeiro 9, 2005 Denunciar Share Postado Janeiro 9, 2005 Então, cara... porque você não usa a fetch_array?Nesse seu caso seria a melhor opção, e ela não é difícil de entender... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
doulo4ever
Olá, sobre o código abaixo:
Ele está listando os dados da seguinte forma:
Como devo customizá-lo para que ordene da seguinte forma:
Já tentei um monte de bobera, mas não consigo!
Alguém pode me ajudar? Algum moderador ou usuário?
Obrigado!
Link para o comentário
Compartilhar em outros sites
17 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.