klasss Posted February 20, 2014 at 09:20 AM Report #545906 Posted February 20, 2014 at 09:20 AM Boas, Necessito de uma ajuda na parte de mostrar os dados. A ver se dá para fazer o que quero ou algo parecido. Actualmente tenho esse codigo para mostrar nclude("conectar.php"); $sql = mysql_query("Select * From tb_trabalhador"); while($exibe = mysql_fetch_array($sql)){ echo "<table>"; echo "<tr><td>Nome:</td>"; echo "<td>".$exibe["Nome"]."</td></tr>"; echo "<tr><td>Morada:</td>"; echo "<td>"; if ($exibe['Morada']){ echo $exibe['Morada'];}else{echo 'N/D';} echo "</td></tr>"; Mas agora quero mostrar na pagina 1 todos os dados do ID1, na pagina 2 o ID2 e por ai fora. Mas as paginas serem automaticamente criadas. Existe algum função mais ou menos para isto? Obrigado
I-NOZex Posted February 20, 2014 at 10:47 AM Report #545914 Posted February 20, 2014 at 10:47 AM (edited) alteras a query para algo deste genero: //passas a ter um endereço genero: http://site.com/cliente?id=1 $id = $_GET['id']; ... //(fazer a validação contra injeçoes, do $id) $sql = mysql_query("Select * From tb_trabalhador WHERE cod_cliente = ".$id); isto é suficiente para o que queres... Edited February 20, 2014 at 10:47 AM by I-NOZex B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
klasss Posted February 20, 2014 at 11:01 AM Author Report #545921 Posted February 20, 2014 at 11:01 AM Acabei por resolver deste forma: <?php include("conectar.php"); $quantidade = 1; $pagina = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1; $inicio = ($quantidade * $pagina)-$quantidade; $sql = "Select * From tb_trabalhador order by id asc LIMIT $inicio, $quantidade"; $qr = mysql_query($sql) or die (mysql_error()); while($exibe = mysql_fetch_array($qr)){ echo "<table>"; echo "<tr><td>Nome:</td>"; echo "<td>".$exibe["Nome"]."</td></tr>"; echo "<tr><td>Morada:</td>"; echo "<td>"; if ($exibe['Morada']){ echo $exibe['Morada'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Tipo:</td>";echo"<td>"; if($exibe['Tipo']){ echo $exibe['Tipo'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Email:</td>"; echo "<td>"; if($exibe['Email']){ echo $exibe['Email'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Alvara Numero:</td>";echo"<td>"; if($exibe['AlvaraNumero']){ echo $exibe['AlvaraNumero'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Alvara Validade:</td>";echo"<td>"; if($exibe['AlvaraValidade']){ echo $exibe['AlvaraValidade'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Alvara Anexo:</td>";echo"<td>"; echo '<a href="download_anexo.php?AlvarAnexo=' . $exibe['AlvaraNumero']. '">Abrir anexo</a>'; echo "<tr><td>Seguro de Acidente Numero:</td>";echo"<td>"; if($exibe['AcidenteNumero']){ echo $exibe['AcidenteNumero'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Seguro de Acidente Validade:</td>";echo"<td>"; if($exibe['AcidenteValidade']){ echo $exibe['AcidenteValidade'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Seguro de Responsabilidade Civil Numero:</td>";echo"<td>"; if($exibe['SeguroNumero']){ echo $exibe['SeguroNumero'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Seguro de Responsabilidade Civil Validade:</td>";echo"<td>"; if($exibe['SeguroValidade']){ echo $exibe['SeguroValidade'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Declaração de Não Divida as Financas Validade:</td>";echo"<td>"; if($exibe['FinancasValidade']){ echo $exibe['FinancasValidade'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Declaração de Não Divida a Segurança Social Validade</td>";echo"<td>"; if($exibe['SocialValidade']){ echo $exibe['SocialValidade'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Declaração de Remuneração de Validade:</td>";echo"<td>"; if($exibe['RemuneracaoValidade']){ echo $exibe['RemuneracaoValidade'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Credencial Entidade Instalador Numero:</td>";echo"<td>"; if($exibe['InstaladorNumero']){ echo $exibe['InstaladorNumero'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Credencial Entidade Instalador Validade:</td>";echo"<td>"; if($exibe['InstaladorValidade']){ echo $exibe['InstaladorValidade'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Credencial Entidade Montadora Numero:</td>";echo"<td>"; if($exibe['MontadorNumero']){ echo $exibe['MontadorNumero'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td>Credencial Entidade Montadora Validade:</td>";echo"<td>"; if($exibe['MontadorValidade']){ echo $exibe['MontadorValidade'];}else{echo 'N/D';} echo "</td></tr>"; echo "<tr><td></td></tr>"; echo "<tr><td></td></tr>"; echo "<tr><td></td></tr>"; echo "<tr><td></td></tr>"; echo "<tr><td></td></tr>"; echo "<tr><td></td></tr>"; echo "<tr><td></td></tr>"; echo "</table>"; } $sqltotal = "SELECT id FROM tb_trabalhador"; $qrtotal = mysql_query($sqltotal) or die (mysql_error()); $numtotal = mysql_num_rows($qrtotal); $totalpagina = ceil($numtotal/$quantidade); echo '<a href="?pagina=1">Primeira página</a>'; for($i = 1; $i <= $totalpagina; $i++){ if($i == $pagina) echo $i; else echo "<a href=\"?pagina=$i\">$i</a>"; } echo '<a href=\"?pagina=$totalPagina\">Ultima página</a>'; ?> Obrigado na mesma. Fiquei só com uma duvida. $sql = "Select * From tb_trabalhador order by id asc LIMIT $inicio, $quantidade"; Se eu quiser colocar mais tabelas como é que consigo utilizando o ID de cada tabela?
I-NOZex Posted February 20, 2014 at 12:23 PM Report #545927 Posted February 20, 2014 at 12:23 PM (edited) ham querias paginação, nao tinhas especificado isso e que tabelas são? se forem relacionas, por exemplo, trabalhador e det_trabalhador, terás de fazer um inner join ( www.sitepoint.com/understanding-sql-joins-mysql-database/ ) exemplo: SELECT * FROM `trabalhador` INNER JOIN `det_trabalhador` on `det_trabalhador`.`trab_id` = `trabalhador`.`id` ORDER BY `trabalhador`.`id` ASC LIMIT {$inicio}, {$quantidade}; penso que será algo desse genero (isto, como referi, para tabelas relacionadas) e de referir tambem, que devias usar MySQLi ou PDO para gerires as querys (mysql esta deprecated, cheio de falhas de segurança...) Edited February 20, 2014 at 12:28 PM by I-NOZex B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
klasss Posted February 20, 2014 at 12:40 PM Author Report #545930 Posted February 20, 2014 at 12:40 PM (edited) São 3 tabelas Relacionadas que quero mostrar: tb_trabalhador(ID) ----- tb_equipamentos(tb_trabalhador_id) tb_detalhe_trabalhador(tb_trabalhador_id)----tb_trabalhador(ID) Vou tentar isso. Como tu deste só me mostra o que está a fazer a relação entre as tabelas ou pode-me tambem mostrar os campos todos das outras tabelas? Edited February 20, 2014 at 02:26 PM by klasss
I-NOZex Posted February 20, 2014 at 06:26 PM Report #545976 Posted February 20, 2014 at 06:26 PM SELECT * Logo seleciona todos os campos em principio dá para fazer inner join com mais tabelas, procura no google: 3 table inner join mysql php mas o que deverá mudar, deve ser algo deste genero: INNER JOIN `equipamentos` on `trabalhador`.`id` = `equipamentos`.`trab_id` INNER JOIN `det_trabalhador` on `trabalhador`.`id` = `det_trabalhador`.`trab_id` ve se aqui te ajuda: http://www.sitepoint.com/forums/showthread.php?647116-Perfect-INNER-JOIN-query-on-multiple-tables http://stackoverflow.com/questions/12656439/inner-join-from-3-table pq eu nao tou a testar o codigo nem nada, pode tar ai um erro ou outro B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
klasss Posted February 21, 2014 at 10:07 AM Author Report #546030 Posted February 21, 2014 at 10:07 AM Mas com o INNER JOIN o resultado é 0. Com o Left e o Right mostra-me so uma das tabelas.
I-NOZex Posted February 21, 2014 at 11:53 AM Report #546049 Posted February 21, 2014 at 11:53 AM (edited) nao te guies pelo meu codigo q é possivel que teja algo mal, mas viste os artigos e mesmo assim nao deu? mostra como ta a query agora sfv Edited February 21, 2014 at 11:53 AM by I-NOZex B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
klasss Posted February 21, 2014 at 12:31 PM Author Report #546058 Posted February 21, 2014 at 12:31 PM SELECT * FROM tb_trabalhador INNER JOIN tb_detalhe_trabalhador ON Tb_trabalhador.id =tb_detalhe_trabalhador.tb_trabalhador_id; Sim estive a ver varios tutoriais. Funcionar funciona, não mostra é o que quero. O resultado desse é 0. testei o LEFT JOIN e o RIGHT JOIN e só me mostra uma das tabelas como é a função deles.
I-NOZex Posted February 21, 2014 at 01:04 PM Report #546061 Posted February 21, 2014 at 01:04 PM (edited) testa essa resposta dai http://stackoverflow.com/questions/7150209/mysql-how-to-alias-a-whole-table-in-a-left-join tens tambem o UNION http://stackoverflow.com/questions/10089666/mysql-union-from-multiple-database-tables mas deixa ai a tua query sfv... Edited February 21, 2014 at 01:08 PM by I-NOZex B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
klasss Posted February 21, 2014 at 02:56 PM Author Report #546064 Posted February 21, 2014 at 02:56 PM <?php include("conectar.php"); $quantidade = 1; $pagina = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1; $inicio = ($quantidade * $pagina)-$quantidade; $sql = "SELECT * FROM tb_trabalhador INNER JOIN tb_detalhe_trabalhador ON Tb_trabalhador.id =tb_detalhe_trabalhador.tb_trabalhador_id"; $qr = mysql_query($sql) or die (mysql_error()); while($exibe = mysql_fetch_array($qr)){ vou ver o que me mandou.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now