Jump to content
Sign in to follow this  
Luisinhoc

PHP + MYsql

Recommended Posts

Luisinhoc

Pessoal tenho uma grande dúvida,

Criei uma base de dados com três tabelas, tou fazendo gestão documental,

uma principal que insere todos os dados e as outras duas só inserem quando forem chamadas, por exemplo fiz uma validação depois de inserir na principal inserir na tabela que for seleccionada (das outras duas), mas depois ocorre-me um problema.

Fiz um form de pesquisa na base de dados por ID da tabela principal.... mas quando pesquiso o nr 3 recebo informação do nr 2,

alguem me pode ajudar?

se não perceberam a minha dúvida posso simplificar mais.

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

O ideal era mostrares o código do script de pesquisa. Salvaguardando os dados confidenciais (como usernames e passwords de acesso à base de dados, por exemplo.)

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

Bem, é simples... Podias mostrar o código que o teu ficheiro .php que faz a listagem tem (após pesquisares pelo ID)?

E depois disse para, quando puseres aqui o código, ter cuidado para não divulgares passwords e/ou usernames reais que possas ter no código.

Share this post


Link to post
Share on other sites
Luisinhoc

esse $_POST['ID'] vem duma form de pesquisa do ID da tabela ppasso

$ID = $_POST['ID'];

$sql = mysql_query("select a.dat from arquivado as a, ppasso as pp where pp.id = $ID and pp.id = a.id

");

while ($row = mysql_fetch_array($sql, MYSQL_NUM)) {

    printf("%s <br />", $row[0]);}

mysql_close($con);

Share this post


Link to post
Share on other sites
Luisinhoc

Será que tem alguma coisa a ver com as 3 tabelas terem a primary key com auto_increment unique?

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

$ID = $_POST['ID'];

$sql = mysql_query("select a.dat from arquivado as a, ppasso as pp where pp.id = $ID and pp.id = a.id
");

while ($row = mysql_fetch_array($sql, MYSQL_NUM)) {
    printf("%s <br />", $row[0]);}
mysql_close($con);

Provavelmente.... porque o que acontece é que - e isto vais ter que confirmar na tua base de dados - a tua tabela ppasso tem um id = 3, mas como o id do arquivado é auto increment, não vão estar (obrigatoriamente) sincronizados :| ...

Resumindo...

Tens que ter um outro campo na tabela arquivados (ex: ppasso_id) onde cada vez que inserires um arquivado, preenches o campo ppasso_id com o id do ppasso referente...

Se por outro lado, a lógica é "Para cada arquivado, muitos ppassos relacionados", então o campo tem que ser criado no lado dos muitos... ;)

Share this post


Link to post
Share on other sites
Luisinhoc

tabela ppasso (

ID int primary key auto_increment unique,

..... mais colunas

);

tabela arquivado(

ID int primary key auto_increment unique,

......mais colunas,

PPID int not null references ppasso(ID)

on update cascade

on delete cascade

);

tabela enviado(

ID int primary key auto_increment unique,

......mais colunas,

PPID int not null references ppasso(ID)

on update cascade

on delete cascade

)

aqui estão as tabelas.... fiz form para mostrar ou arquivados ou enviados, e os numeros dos ID não irão ser seguidos quando vejo qualquer das form, tipo

insiro dados da primeira vez e selecciono para arquivados ou seja quando for ver os arquivados vai la estar esse registo com ID = 1;

insiro a segunda vez mas desta vez mando para enviados quando mostra é o ID = 2;

agora da 3ºa vez mando para arquivados ou seja quando for ver novamente os arquivados vai estar o ID = 1 e o ID = 3; porque o dois foi para enviados;

será que isso pode causar problema quando selecciono o ID 3 para mostrar seus dados e vai retornar afinal é o ID 2? :S

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×
×
  • 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.