pedrovisk 1 Denunciar post Postado Agosto 27, 2013 Olá Pessoal! Sou novo em PHP e estou desenvolvendo uma página onde liste todos os registro de duas tabelas (Colaborador e Departamento). Segue a consulta que gerei: select `colaborador`.`ID` AS `IdColab`, `colaborador`.`NomeBase` AS `NomeBase`, `colaborador`.`UsuarioBase` AS `UsuarioBase`, `colaborador`.`IDDepartamento` AS `IDDepartamento`, `departamento`.`ID`, `departamento`.`Departamento` AS `Departamento`, from (`colaborador` join `departamento`) where (`colaborador`.`IDDepartamento` = `departamento`.`ID`) group by `departamento`.`ID` Esta página deverá exibir os Colaboradores agrupados por Departamento, por exemplo: Departamento A - Colaborador 1 - Colaborador 2 - Colaborador 3 Departamento B - Colaborador 4 - Colaborador 5 - Colaborador 6 A consulta está trazendo o resultado esperado, mas eu não sei como montar esta estrutura de repetição que exiba o Nome do Departamento no cabeçalho da TABELA e na linha seguinte, liste os Colaboradores deste Departamento. Alguém já fez algo semelhante? Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Godoi 3 Denunciar post Postado Agosto 27, 2013 tipo, você quer que o script faça a busca do Departamento A e exibir os dados dele que esta gravado no Departamento B? Compartilhar este post Link para o post Compartilhar em outros sites
pedrovisk 1 Denunciar post Postado Agosto 27, 2013 Ricardo, O que é preciso é listas TODOS os Colaboradores de CADA Departamento. Veja um exemplo da tabela que criei https://docs.google.com/file/d/0B9ADjnhrddtnN0hLNFRra0NkbmM/edit?usp=sharing Obrigado! Aqui vai o HTML dela: <table width="570" border="1" cellspacing="0" cellpadding="1"> <tr> <td colspan="3"><strong>Departamento: </strong>Financeiro</td> </tr> <tr align="center"> <td><strong>Colaborador</strong></td> <td><strong>Nome Base</strong></td> <td><strong>Usuário Base</strong></td> </tr> <tr> <td>Paulo</td> <td>Paulo</td> <td>paulo</td> </tr> <tr> <td>Carlos</td> <td>Carlos</td> <td>carlos</td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <td colspan="3"><strong>Departamento: </strong>Comercial</td> </tr> <tr align="center"> <td><strong>Colaborador</strong></td> <td><strong>Nome Base</strong></td> <td><strong>Usuário Base</strong></td> </tr> <tr> <td>Henrique</td> <td>Henrique</td> <td>henrique</td> </tr> <tr> <td>Mari</td> <td>Mari</td> <td>mari</td> </tr> </table> Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Godoi 3 Denunciar post Postado Agosto 27, 2013 humm, isso vai depender muito de como é seu sistema, todos esse colaborador esta na mesma tabela? Compartilhar este post Link para o post Compartilhar em outros sites
pedrovisk 1 Denunciar post Postado Agosto 27, 2013 Sim. Estão todos na mesma tabela. Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Godoi 3 Denunciar post Postado Agosto 28, 2013 Bom, nao sou bom em php, me arisco, mas acho que uma solução seria assim no banco de dados, depois voce junta com um script CREATE TABLE IF NOT EXISTS `departamentos` ( `id_departamentos` int(11) NOT NULL AUTO_INCREMENT, `id_colaborador` int(11) NOT NULL, `departamento` varchar(100) NOT NULL DEFAULT '', PRIMARY KEY (`id_departamentos`), KEY `id_artistas` (`id_departamentos`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `departamentos_colaborador` ( `id_colaborador` int(11) NOT NULL AUTO_INCREMENT, `colaborador` varchar(255) CHARACTER SET latin1 NOT NULL, PRIMARY KEY (`id_categoria`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ; Compartilhar este post Link para o post Compartilhar em outros sites
pedrovisk 1 Denunciar post Postado Agosto 28, 2013 Ricardo, O Banco de dados está ok e trazendo o que solicitei. O que preciso de ajuda é no PHP para exibir conforme necessito. Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Godoi 3 Denunciar post Postado Agosto 28, 2013 bom, aqui no meu eu uso assim <? if ($_GET['id']>0) { $busca = " AND id_noticia=".(int)$_GET['id']; } else if ($_GET['categoria']>0) { $busca = " AND noticias.id_categoria=".(int)$_GET['categoria']; } $i=0; $SQL = " SELECT noticias.*, DATE_FORMAT(noticias.data,'%d/%m/%Y') as data1 , noticias_categorias.* FROM noticias INNER JOIN noticias_categorias ON (noticias_categorias.id_categoria = noticias.id_categoria) WHERE 1 ".$busca." ORDER BY data DESC "; $Lista = new Consulta($SQL,20,$PGATUAL); while ($linha = db_lista($Lista->consulta)) { $i++; ?> para mim listar a noticia a sua categoria Compartilhar este post Link para o post Compartilhar em outros sites
pedrovisk 1 Denunciar post Postado Agosto 28, 2013 Estou quase chegando lá, veja como ficou agora: Obs.: Preciso apenas colocar uma linha vazia entre um cabeçalho e outro (Departamento) <?php $con = mysql_connect('localhost', 'root', '111'); mysql_select_db('GI', $con); $sql = "SELECT * FROM Departamento"; $query = mysql_query( $sql )or die( mysql_error() ); //echo $sql; ?> <table width="570" border="0" cellspacing="1" cellpadding="2"> <?php while ($linha1 = mysql_fetch_assoc($query)) { ?> <tr bgcolor="#FF9933"> <td colspan="3"><strong>Departamento: </strong><?php echo $linha1['Departamento']?></td> </tr> <tr align="center" bgcolor="#F2F2F2"> <td><strong>Colaborador</strong></td> <td><strong>Nome Base</strong></td> <td><strong>Usuário Base</strong></td> </tr> <?php $sql2 = " SELECT * FROM `Colaborador` INNER JOIN `Departamento` ON Colaborador.IDDepartamento = Departamento.ID WHERE Colaborador.IDDepartamento = {$linha1['ID']} "; //echo $sql2; $query2 = mysql_query( $sql2 )or die( mysql_error() ); while ( $dados = mysql_fetch_assoc( $query2 ) ) { ?> <tr> <td><?php echo $dados['NomeBase'] ?></td> <td><?php echo $dados['UsuarioBase'] ?></td> <td><?php echo $dados['Colaborador.ID'] ?></td> </tr> <?php } } ?> </table> Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Godoi 3 Denunciar post Postado Agosto 28, 2013 separa com um </br> Compartilhar este post Link para o post Compartilhar em outros sites
pedrovisk 1 Denunciar post Postado Agosto 28, 2013 Ricardo, Você saber como colocar uma linha do cor e a outra com OUTRA COR? Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Godoi 3 Denunciar post Postado Agosto 28, 2013 tenho um script que faz isso, vai aqui uma parte dele, acho que você consegue tirar oque você quer. <? $i=0; while ($dados = db_lista($consulta_dados)) { if($i % 2 == 0){ ?> <div id="cor1"> </div> <? else{ ?> <div id="cor2"> </div> <?php } $i++; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
pedrovisk 1 Denunciar post Postado Agosto 28, 2013 Não deu certo. Ficou o conteúdo do DEPARTAMENTO de uma cor e o conteúdo de outro departamento de outra cor. O que preciso é que as LINHAS DO DEPARTAMENTO tenham cores distintas, tipo: cor sim e cor não. <table width="600" border="0" cellpadding="2" cellspacing="1" class="Borda"> <?php while ($linha1 = mysql_fetch_assoc($rs)) { ?> <tr class="Titulo"> <td colspan="3"><strong>Departamento:</strong> <?php echo trim($linha1['Departamento'])?></td> </tr> <tr align="center" class="Cabecalho"> <td>Colaborador</td> <td>e-Mail</td> <td>Senha</td> </tr> <?php $sql2 = " SELECT * FROM `Colaborador` INNER JOIN `Departamento` ON Colaborador.IDDepartamento = Departamento.ID WHERE Colaborador.IDDepartamento = {$linha1['ID']} "; $rs2 = mysql_query( $sql2 )or die( mysql_error() ); //$num = 0; $num = $num + 1; if($num % 2 == 0) { $cor = '#EAF9FF'; } else { $cor = '#FFFFFF'; } while ( $dados = mysql_fetch_assoc( $rs2 ) ) { ?> <tr class="Linha" bgcolor="<?php echo $cor ?>"> <td><?php echo trim($dados['NomeBase']) ?></td> <td><?php echo trim($dados['email']) ?></td> <td><?php echo trim($dados['Senha']) ?></td> </tr> <?php } } ?> </table> Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Godoi 3 Denunciar post Postado Agosto 28, 2013 http://www.informacast.com.br/ olha na parte onde exibi as musicas, é desse tipo que vc quer? se for e dai que retirei o codigo. Compartilhar este post Link para o post Compartilhar em outros sites
pedrovisk 1 Denunciar post Postado Agosto 28, 2013 Isso mesmo! Perfeito! Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Godoi 3 Denunciar post Postado Agosto 28, 2013 então, foi dai que retirei o codigo, eu uso div e vem de tabela como você! é mais facil a edição Compartilhar este post Link para o post Compartilhar em outros sites
pedrovisk 1 Denunciar post Postado Agosto 28, 2013 Eu fiz assim e não deu certo: $rs2 = mysql_query( $sql2 )or die( mysql_error() ); $I = 0; //$num = $num + 1; if($I % 2 == 0) { $cor = '#EAF9FF'; } else { $cor = '#FFFFFF'; } while ( $dados = mysql_fetch_assoc( $rs2 ) ) { ?> <tr class="Linha" bgcolor="<?php echo $cor ?>"> <td><?php echo trim($dados['NomeBase']) ?></td> <td><?php echo trim($dados['email']) ?></td> <td><?php echo trim($dados['Senha']) ?></td> </tr> <?php } $I++; } ?> RESOLVI! FICOU ASSIM: $rs2 = mysql_query( $sql2 )or die( mysql_error() ); $i = 0; while ( $dados = mysql_fetch_assoc( $rs2 ) ) { if($i % 2 == 0){ $cor = '#F2F2F2'; }else{ $cor = '#ffffff'; } $i++; ?> <tr class="Linha" bgcolor="<?php echo $cor ?>"> <td><?php echo trim($dados['NomeBase']) ?></td> <td><?php echo trim($dados['email']) ?></td> <td><?php echo trim($dados['Senha']) ?></td> </tr> Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo Godoi 3 Denunciar post Postado Agosto 28, 2013 Bom, não so muito com em msylq, mas acho que é tipo assim, testa ai para ver!! <table width="600" border="0" cellpadding="2" cellspacing="1" class="Borda"> <?php $i=0; while ($linha1 = mysql_fetch_assoc($rs)) if($i % 2 == 0) { ?> <tr class="Titulo"> <td colspan="3"><strong>Departamento:</strong> <?php echo trim($linha1['Departamento'])?></td> </tr> <tr align="center" bgcolor="#c4c4c4" class="Cabecalho"> <td>Colaborador</td> <td>e-Mail</td> <td>Senha</td> </tr> <? else{ ?> <?php $sql2 = " SELECT * FROM `Colaborador` INNER JOIN `Departamento` ON Colaborador.IDDepartamento = Departamento.ID WHERE Colaborador.IDDepartamento = {$linha1['ID']} "; //echo $sql2; $query2 = mysql_query( $sql2 )or die( mysql_error() ); while ( $dados = mysql_fetch_assoc( $query2 ) ) { ?> <tr class="Linha" bgcolor="#c2c2c2"> <td><?php echo trim($dados['NomeBase']) ?></td> <td><?php echo trim($dados['email']) ?></td> <td><?php echo trim($dados['Senha']) ?></td> </tr> <?php } } $i++; } </table> Compartilhar este post Link para o post Compartilhar em outros sites