EMSO.EXE 0 Denunciar post Postado Junho 24, 2011 Pessoal estou com o seguinte problema em php+mysql... tenho 2 tabelas e quero exibir os dados conforme exemplo abaixo: tb_ativo cod_ativo cod_tipo 1 1 2 1 3 2 4 2 tb_tipo cod_tipo nm_tipo 1 monitor 2 teclado na listagem deve aparecer assim: página php cod_ativo nm_tipo 1 monitor 2 monitor 3 teclado 4 teclado porém ocorre o seguinte erro: Warning: mysql_result(): Unable to jump to row 1 on MySQL result index 9 in /files/portal/documentox/listagem_ativo.php on line 42 e a primeira linha funciona e as demais ficam sem dados: página php cod_ativo nm_tipo 1 monitor 2 3 4 segue o código: <?php include ('conexao_bd.php'); include ('cabecalho.php'); include ('menu.php'); $resultado = mysql_query("select * from docx_tb_ativo;") or die (mysql_error()); $linha = mysql_num_rows($resultado); if ( $linha == 0 ) { if ( isset( $conexao ) and $conexao ) { mysql_close($conexao); } die('table vazia'); } echo ' <table> <tr> <th class="titulo"><p>EDITAR</p></th> <th class="titulo"><p>EXCLUIR</p></th> <th class="titulo"><p>Código ativo</p></th> <th class="titulo"><p>Tipo de ativo</p></th> <th class="titulo"><p>Modelo</p></th> <th class="titulo"><p>Data de entrada</p></th> <th class="titulo"><p>Número de série</p></th> <th class="titulo"><p>PIP</p></th> </tr> '; for( $x = 0 ; $x < $linha ; $x++ ) { $cod_ativo = mysql_result($resultado, $x, 'cod_ativo'); $cod_tipo = mysql_result($resultado, $x, 'cod_tipo'); // O ERRO OCORRE AQUI!!!!! $resultado1 = mysql_query("select * from docx_tb_tipo where cod_tipo = $cod_tipo;"); $nm_tipo = mysql_result($resultado1, $x, 'nm_tipo'); $cod_subtipo = mysql_result($resultado, $x, 'cod_subtipo'); $dt_entrada = mysql_result($resultado, $x, 'dt_entrada'); $num_serie = mysql_result($resultado, $x, 'num_serie'); $num_pip = mysql_result($resultado, $x, 'num_pip'); $icone_editar = "<a href='alterar_cadastro.php?cod_ativo=$cod_ativo'> <img src=\"imagens/alterar_01.png\" alt=\"Clique para editar\" /> </a>"; $icone_excluir = "<a href='excluir_cadastro.php?cod_ativo=$cod_ativo' onClick=\"return confirm('Deseja excluir o ativo:$cod_ativo?');\"> <img src=\"imagens/excluir_01.png\" alt=\"Clique para excluir\" /> </a>"; $y = 0; $y = floor(fmod($x,2)); if ($y == 0) $y = 1; else $y = 2; echo ' <tr class="linha'.$y.'"> <td><center>'.$icone_editar.'</center></td> <td><center>'.$icone_excluir.'</center></td> <td><center>'.$cod_ativo.'</center></td> <td>'.$nm_tipo.'</td> <td>'.$cod_subtipo.'</td> <td>'.$dt_entrada.'</td> <td>'.$num_serie.'</td> <td>'.$num_pip.'</td> </tr> '; } echo '</table>'; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 Faz um INNER JOIN amigão, tem como você postar o SQL das suas tabelas aí ? []'s Compartilhar este post Link para o post Compartilhar em outros sites
EMSO.EXE 0 Denunciar post Postado Junho 24, 2011 Segue o sql, vou tentar utilizar o inner join... CREATE SCHEMA IF NOT EXISTS `test` ; USE `test`; -- ----------------------------------------------------- -- Table `test`.`docx_tb_tipo` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `test`.`docx_tb_tipo` ( `cod_tipo` INT NOT NULL AUTO_INCREMENT , `cod_subtipo` INT NOT NULL , `nm_tipo` VARCHAR(25) NOT NULL , PRIMARY KEY (`cod_tipo`) ); -- ----------------------------------------------------- -- Table `test`.`docx_tb_ativo` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `test`.`docx_tb_ativo` ( `cod_ativo` INT NOT NULL AUTO_INCREMENT , `cod_tipo` INT NOT NULL , `cod_subtipo` INT NOT NULL , `dt_entrada` DATE NOT NULL , `num_serie` VARCHAR(30) NOT NULL , `num_pip` INT NOT NULL , `txt_obs` VARCHAR(99) NOT NULL , PRIMARY KEY (`cod_ativo`) , INDEX `fk_tipo_ativo` (`cod_tipo` ASC, `cod_subtipo` ASC) , CONSTRAINT `fk_tipo_ativo` FOREIGN KEY (`cod_tipo` , `cod_subtipo` ) REFERENCES `test`.`docx_tb_tipo` (`cod_subtipo` , `cod_subtipo` ) ON DELETE NO ACTION ON UPDATE CASCADE); Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Junho 24, 2011 Tenta assim: SELECT * FROM `docx_tb_tipo` INNER JOIN `docx_tb_ativo` ON `docx_tb_tipo`.`cod_tipo` = `docx_tb_ativo`.`cod_tipo` Compartilhar este post Link para o post Compartilhar em outros sites
EMSO.EXE 0 Denunciar post Postado Junho 25, 2011 Deu certo, está exibindo o nm_tipo no lugar de cod_tipo, agora quero exibir também o nm_tipo em cod_subtipo, essa tabela tipo fiz da seguinte forma: cod_tipo - cod_subtipo - nm_tipo 1 ........ 10 .......... monitor 2 ........ 10 .......... mouse 3 ........ 10 .......... teclado 4 ........ 1 ........... LG 5 ........ 1 ........... Samsung 6 ........ 2 ........... Genius 7 ........ 2 ........... microsoft e estou o usando este sql: SELECT * FROM `docx_tb_tipo` INNER JOIN `docx_tb_ativo` ON `docx_tb_tipo`.`cod_tipo` = `docx_tb_ativo`.`cod_tipo` OR `docx_tb_tipo`.`cod_tipo` = `docx_tb_ativo`.`cod_subtipo`; porém está exibindo uma linha com cod_tipo e outra com cod_subtipo... Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Junho 25, 2011 Qual o resultado desejado ? Compartilhar este post Link para o post Compartilhar em outros sites
EMSO.EXE 0 Denunciar post Postado Junho 27, 2011 Então quero que apareça o lugar de cod_tipo e cod_subtipo a descrição que está em nm_tipo, mas o modo com tentei da um resultado como esse: cod_ativo - cod_tipo(nm_tipo) - cod_subtipo(nm_tipo) 01...........monitor.............04 01...........01..................LG e quero chegar a esse resultado: cod_ativo - cod_tipo(nm_tipo) - cod_subtipo(nm_tipo) 01...........monitor.............LG Compartilhar este post Link para o post Compartilhar em outros sites
EMSO.EXE 0 Denunciar post Postado Junho 29, 2011 problema resolvido!! segue a solução <?php include ('conexao_bd.php'); include ('cabecalho.php'); include ('menu.php'); $resultado_tipo = mysql_query("SELECT * FROM `docx_tb_tipo` INNER JOIN `docx_tb_ativo` ON `docx_tb_tipo`.`cod_tipo` = `docx_tb_ativo`.`cod_tipo`;") or die (mysql_error()); $resultado_subtipo = mysql_query("SELECT * FROM `docx_tb_tipo` INNER JOIN `docx_tb_ativo` ON `docx_tb_tipo`.`cod_tipo` = `docx_tb_ativo`.`cod_subtipo`;") or die (mysql_error()); $linha = mysql_num_rows($resultado_tipo); if ( $linha == 0 ) { if ( isset( $conexao ) and $conexao ) { mysql_close($conexao); } die('table vazia'); } echo ' <table> <tr> <th class="titulo"><p>EDITAR</p></th> <th class="titulo"><p>EXCLUIR</p></th> <th class="titulo"><p>Código ativo</p></th> <th class="titulo"><p>Tipo de ativo</p></th> <th class="titulo"><p>Modelo</p></th> <th class="titulo"><p>Data de entrada</p></th> <th class="titulo"><p>Número de série</p></th> <th class="titulo"><p>PIP</p></th> </tr> '; for( $x = 0 ; $x < $linha ; $x++ ) { $cod_ativo = mysql_result($resultado_tipo, $x, 'cod_ativo'); $nm_tipo = mysql_result($resultado_tipo, $x, 'nm_tipo'); $nm_subtipo = mysql_result($resultado_subtipo, $x, 'nm_tipo'); $dt_entrada = mysql_result($resultado_tipo, $x, 'dt_entrada'); $num_serie = mysql_result($resultado_tipo, $x, 'num_serie'); $num_pip = mysql_result($resultado_tipo, $x, 'num_pip'); $icone_editar = "<a href='alterar_cadastro.php?cod_ativo=$cod_ativo'> <img src=\"imagens/alterar_01.png\" alt=\"Clique para editar\" /> </a>"; $icone_excluir = "<a href='excluir_cadastro.php?cod_ativo=$cod_ativo' onClick=\"return confirm('Deseja excluir o ativo:$cod_ativo?');\"> <img src=\"imagens/excluir_01.png\" alt=\"Clique para excluir\" /> </a>"; $y = 0; $y = floor(fmod($x,2)); if ($y == 0) $y = 1; else $y = 2; echo ' <tr class="linha'.$y.'"> <td><center>'.$icone_editar.'</center></td> <td><center>'.$icone_excluir.'</center></td> <td><center>'.$cod_ativo.'</center></td> <td>'.$nm_tipo.'</td> <td>'.$nm_subtipo.'</td> <td>'.$dt_entrada.'</td> <td>'.$num_serie.'</td> <td>'.$num_pip.'</td> </tr> '; } echo '</table>'; ?> Compartilhar este post Link para o post Compartilhar em outros sites