misterviralata Postado Janeiro 20, 2007 Denunciar Share Postado Janeiro 20, 2007 Ola Amigos!Tenho uma tabela como 4 campos: funcionários, campo1, campo2 e campo3Imaginem a tabela populada desta forma:João, branco, azul, pretoMaria, azul, rosa, vermelhoAdriana, branco, rosa, vermelhoZavier, preto, rosa, brancoPara saber o nome dos funcionários que escolheram a cor branca faço assim:$cor = “branco”;echo”<table>”;$sql = “select * from tabela where campo1 = ‘$cor’”;$query=mysql_query ($sql);while ($vet=mysql_fetch_row($query)){ $nome=$ve1[1]; echo"<tr><td>$nome<p></td></tr>"; }$sql2 = “select * from tabela where campo2 = ‘$cor’”;$query2=mysql_query ($sql2);while ($vet=mysql_fetch_row($query2)){ $nome=$ve2[2]; echo"<tr><td>$nome<p></td></tr>"; }$sql3 = “select * from tabela where campo3 = ‘$cor’”;$query3=mysql_query ($sql3);while ($vet=mysql_fetch_row($query3)){ $nome=$ve3[3]; echo"<tr><td>$nome<p></td></tr>"; }echo”</table>”;Desta forma me é retornado o seguinte resultadoJoaoAdrianaZavierAté aqui tudo okComo faço para trazer este mesmo resultado só que em ordem alfabetica, já que o resultado estão em campos diferentes? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 20, 2007 Denunciar Share Postado Janeiro 20, 2007 Em primeiro lugar, mude esse seu SELECT... e dai basta colocar o ORDER BY para deixar em ordem alfabética.SELECT * FROM tabela WHERE campo1 = '$cor' OR campo2 = '$cor' OR campo3 = '$cor' ORDER BY funcionarios ASC Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 misterviralata Postado Janeiro 20, 2007 Autor Denunciar Share Postado Janeiro 20, 2007 Ola ESerra!Maravilha deu certo! muito mais facil e pratico.mas... não querendo abusar.nesta tabela que estrou trazendo o resultado o td tem 120 px de larguraecho"<tr><td width=120>$nome<p></td></tr>";e por uma frescura do meu chefe ele me pediu para trazer o nome do funconario e o espaço restante da celula preencher com pontosex:JOAO.............ADRIANA.......ZAVIER..........então pensei em contar o tamanho de cada resultado e fazer a conta para saber quantos pontos faltavam para completar o tamanho da celula no caso 50strlen($nome);$tamanho = "50";$result = $tamanho - strlen($nome);e ficou como no codigo abaixo, gostaria de saber se fiz da forma certa e se tem uma maneira de simplificar o codigo como você agora pouco com o select:$cor="branco";echo"<table>";$sql = "SELECT * FROM tabela WHERE campoi1 = '$cor' and data1='$datas' and turma1='$turma' OR campoi2 = '$cor' and data2='$datas' and turma2='$turma' OR campoi3 = '$cor' and data3='$datas' and turma3='$turma' ORDER BY funcionario ASC";$query=mysql_query ($sql);while ($vê=mysql_fetch_row($query)) { $nome=$ve2[2]; strlen($nome); $dez = "50"; $result = $dez - strlen($nome); $nome= strtoupper($nome); include("procura.php"); echo"<tr><td width=120>$nome$ponto<p></td><td>$cor</td></tr>"; } echo"</table>"; procura.php<?php switch ($result) {case 1;$ponto= ".";break;case 2;$ponto= "..";break;case 3;$ponto= "...";break;case 4;$ponto= "....";break;case 5;$ponto= ".....";break;case 6;$ponto= "......";break;case 7;$ponto= ".......";break;case 8;$ponto= "........";break;case 9;$ponto= ".........";break;case 10;$ponto= "..........";break;case 11;$ponto= "...........";break;case 12;$ponto= "............";break;case 13;$ponto= ".............";break;case 14;$ponto= "..............";break;case 15;$ponto= "...............";break;case 16;$ponto= "................";break;case 17;$ponto= ".................";break;case 18;$ponto= "..................";break;case 19;$ponto= "...................";break;case 20;$ponto= "....................";break;case 21;$ponto= ".....................";break;case 22;$ponto= "......................";break;case 23;$ponto= ".......................";break;case 24;$ponto= "........................";break;case 25;$ponto= ".........................";break;case 26;$ponto= "..........................";break;case 27;$ponto= "...........................";break;case 28;$ponto= "............................";break;case 29;$ponto= ".............................";break;case 30;$ponto= "..............................";break;case 31;$ponto= "...............................";break;case 32;$ponto= "................................";break;case 33;$ponto= ".................................";break;case 34;$ponto= "..................................";break;case 35;$ponto= "...................................";break;case 36;$ponto= "....................................";break;case 37;$ponto= ".....................................";break;case 38;$ponto= "......................................";break;case 39;$ponto= ".......................................";break;case 40;$ponto= "........................................";break;case 41;$ponto= ".........................................";break;case 42;$ponto= "..........................................";break;case 43;$ponto= "...........................................";break;case 44;$ponto= "............................................";break;case 45;$ponto= ".............................................";break;case 46;$ponto= "..............................................";break;case 47;$ponto= "...............................................";break;case 48;$ponto= "................................................";break;case 49;$ponto= ".................................................";break;case 50;$ponto= "..................................................";break;}?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 20, 2007 Denunciar Share Postado Janeiro 20, 2007 Eu faria um laço para evitar um código daquele tamanho:$cont = 1; while ($cont <= $result){ echo "."; $cont++; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 misterviralata Postado Janeiro 20, 2007 Autor Denunciar Share Postado Janeiro 20, 2007 mais uma pergunta posso trabalhar com um while dentro do outro?while ($vê=mysql_fetch_row($query)) {$nome=$ve2[2];strlen($nome);$dez = "50";$result = $dez - strlen($nome);$cont = 1;while ($cont <= $result){echo ".";$cont++;}} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 20, 2007 Denunciar Share Postado Janeiro 20, 2007 Teoricamente sim, mas eu de fato nunca tentei...ps.: Não use variáveis com caracteres especiais e acentos! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 misterviralata Postado Janeiro 23, 2007 Autor Denunciar Share Postado Janeiro 23, 2007 deu certo! obrigado!$sql = "SELECT * FROM tabela WHERE campo1 = '$titulo' and data1='$datas' and turma1='$turma' ORDER BY codfunc ASC";$query=mysql_query ($sql);$quantidade = mysql_num_rows($query); while ($vê=mysql_fetch_row($query)) { $nome=$vê[2]; strlen($nome);$dez = "50";$result = $dez - strlen($nome);$nome= strtoupper($nome);echo"<tr><td width=470>$nome";$cont = 1;while($cont <= $result) {echo"_";$cont++;}echo"<p></td</tr>";} Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
misterviralata
Ola Amigos!
Tenho uma tabela como 4 campos: funcionários, campo1, campo2 e campo3
Imaginem a tabela populada desta forma:
João, branco, azul, preto
Maria, azul, rosa, vermelho
Adriana, branco, rosa, vermelho
Zavier, preto, rosa, branco
Para saber o nome dos funcionários que escolheram a cor branca faço assim:
$cor = “branco”;
echo”<table>”;
$sql = “select * from tabela where campo1 = ‘$cor’”;
$query=mysql_query ($sql);
while ($vet=mysql_fetch_row($query)){
$nome=$ve1[1];
echo"<tr><td>$nome<p></td></tr>";
}
$sql2 = “select * from tabela where campo2 = ‘$cor’”;
$query2=mysql_query ($sql2);
while ($vet=mysql_fetch_row($query2)){
$nome=$ve2[2];
echo"<tr><td>$nome<p></td></tr>";
}
$sql3 = “select * from tabela where campo3 = ‘$cor’”;
$query3=mysql_query ($sql3);
while ($vet=mysql_fetch_row($query3)){
$nome=$ve3[3];
echo"<tr><td>$nome<p></td></tr>";
}
echo”</table>”;
Desta forma me é retornado o seguinte resultado
Joao
Adriana
Zavier
Até aqui tudo ok
Como faço para trazer este mesmo resultado só que em ordem alfabetica, já que o resultado estão em campos diferentes?
Link para o comentário
Compartilhar em outros sites
6 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.