Jump to content

[Resolvido] Mostrar pagina ID


Recommended Posts

Posted

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

Posted (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 by I-NOZex

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Posted

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?

Posted (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 by I-NOZex

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Posted (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 by klasss
Posted

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
Posted
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.

Posted
<?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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.