Jump to content
Fórum Script Brasil
  • 0

Duvida com uso da sintaxe


LucasSouza

Question

Seguinte, eu quero excluir do meu banco de dados uma linha da tabela, ai eu fiz o seguinte.

tenho no arquivo listar.php que lista todas minhas 4 tabelas (emprestimo, funcionario, usuario, livro). E a seguinte tag:

<td><a href=\"edicaofunc.php?cpffunc=$cpffunc\">[Editar]</a> | <a href=\"excluir.php?cpffunc=$cpffunc\">[Excluir]</a></td>

exclui determinada linha.

o botao excluir vai direcionar para excluir.php e ae vem minha duvida, eu queria fazer o seguinte :

quando apertasse o excluir de funcionario entrasse no arquivo excluir.php e ele fizesse a escolha

Se for excluir usuario faca

delete from blablabla

senao se for excluir livro faca

delete from blablabla

assim por diante, espero que tenham entendido, obrigaodo pela atencao de todos e pela colaboracao. não tenho c cedilha kkk

e desculpas caso não deu para entender

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Sério amigo, li e reli três vezes e não consegui entender o objetivo do possível "if" ali no exlcuir.php

Por que seu sistema deve optar por excluir de uma tabela ou outra exatamente? Tente dar um exemplo mais prático com situações reais pra gente entender melhor.

Link to comment
Share on other sites

  • 0
Sério amigo, li e reli três vezes e não consegui entender o objetivo do possível "if" ali no exlcuir.php

Por que seu sistema deve optar por excluir de uma tabela ou outra exatamente? Tente dar um exemplo mais prático com situações reais pra gente entender melhor.

Ok, desculpe por não ter entendido.

Vamos la.

Primeiro vou explicar o sistema, é uma biblioteca em que um usuario faz emprestimo com algum funcionario e ele pega um livro ou mais.

beleza, agora vamos la, tenho a listar.php. que faz a listagem das tres tabelas.

Neste arquivo eu faco o procedimento de selecionar todas as colunas armazenar emum array imprimir. Na parte de imprenssao eu decidi fazer assim:

<tr>

<td>$cpffunc</td>

<td>$nomefunc</td>

<td>$enderecofunc</td>

<td>$telefonefunc</td>

<td>$emailfunc</td>

<td>$idAcesso</td>

<td>$setor</td>

<td><a href=\"edicaofunc.php?cpffunc=$cpffunc\">[Editar]</a> | <a href=\"excluir.php?cpffunc=$cpffunc\">[Excluir]</a></td>

</tr>

Este é o exemplo com a tabela de funcionarios. Ele vai imprimir cpf, nome, endereco e etc. E imprimi dois o botoes o de Editar e o de Excluir. O foco é no de excluir.

Ai ali eu faco um link para o arquivo excluir.php. Ai neste excluir.php eu tenho o seguinte

$cpffunc = $_GET["cpffunc"];

mysql_query("DELETE FROM funcionario where cpffunc = $cpffunc");

que seria para excluir funcionario.

So que eu quero colocar no meu arquivo excluir.php todas as opcoes de exclusao. pra excluir funcionario usuario e livro.

Ai assim que eu apertar o botao excluir ele envia para excluir os dados e verifica

Voce quer excluir funcionario? então faca isto

Senao se voce excluir usuario? então faca aquilo

Senao se voce quer excluir livro? então faca isto.

não sei se deu pra entender novamente . qualquer coisa desculpas

Link to comment
Share on other sites

  • 0

Ok, estamos quase lá...

Entendi que você cria uma lista de resultados com os funcionários cadastrados, lá tem um link para excluir (o funcionário) por CPF. Até aqui tudo ok, nehum mistério. Agora vem minha dúvida: Que relação tem funcionário com usuários e livros? Se são tabelas diferentes, não seria interessante botar mais um link ali na lista para abrir todos os livros daquele funcionário e depois escolher qual livro quer excluir?

Ou, você teria que criar um formulário no excluir.php que pegasse o funcionário pelo cpf, exibisse os dados apenas deste funcionário e neste formulário exibir as opções de exclusão, se é apenas livros, usuários, etc. (isso pode ser radio button ou lista) E finalmente um botão no final do formulário para prosseguir com a exclusão.

Link to comment
Share on other sites

  • 0
Ok, estamos quase lá...

Entendi que você cria uma lista de resultados com os funcionários cadastrados, lá tem um link para excluir (o funcionário) por CPF. Até aqui tudo ok, nehum mistério. Agora vem minha dúvida: Que relação tem funcionário com usuários e livros? Se são tabelas diferentes, não seria interessante botar mais um link ali na lista para abrir todos os livros daquele funcionário e depois escolher qual livro quer excluir?

Ou, você teria que criar um formulário no excluir.php que pegasse o funcionário pelo cpf, exibisse os dados apenas deste funcionário e neste formulário exibir as opções de exclusão, se é apenas livros, usuários, etc. (isso pode ser radio button ou lista) E finalmente um botão no final do formulário para prosseguir com a exclusão.

Estamos quase la, é mais ou menos o que voce escreveu no segundo paragrafo que eu quero. No arquivo excluir.php ele já estara com todos os excluir so que eu não posso colocar sem nenhuma condicao senao ele vai falar que eu não declarei a variavel , desta forma:

$cpffunc = $_GET["cpffunc"];

mysql_query("DELETE FROM funcionario where cpffunc = $cpffunc");

$codISBN = $_GET["codISBN"];

mysql_query("DELETE FROM livro where codISBN = $codISBN");

$cpfus = $_GET["cpfus"];

mysql_query("DELETE FROM usuario where cpfus = $cpfus");

se eu clicar no botao excluir la em lista.php no botao de livro por exemplo, ele vai entrar no excluir.php e não vai encontrar nenhuma condicao e vai falar que eu n declarei nem cpffuc nem cpfus, entende? ai eu qeuria selecionar onde ele vai entrar que no caso seria codISBN e excluir isto

Link to comment
Share on other sites

  • 0

Boa tarde LucasSouza,

Bom ve se isso ajuda, pelo que entendi acredito que vai precisar de que sua pagina excluir.php receba a ação que vai executar, porem para que isso funcione vai precisar mudar a chamada dele quando cria o link [Excluir] ex:

para excluir funcionario:

<a href=\"excluir.php?acao=ExcluirFunc&cpffunc=$cpffunc\">[Excluir]</a>

para excluir livro:

<a href=\"excluir.php?acao=Excluirlivro&cpffunc=$cpffunc\">[Excluir]</a>

para excluir usuario:

<a href=\"excluir.php?acao=ExcluirUsuario&cpffunc=$cpffunc\">[Excluir]</a>

quando a página excluir.php for chamada passando esse parâmetro acao junto com o respectivo parâmetro ($cpffunc,$codISBN,$cpfus), as variaveis que vão precisar existir vai depender do seu link [Excluir].

Segue abaixo pagina excluir.php

if($_GET[acao] == "ExcluirFunc"){
$cpffunc = $_GET["cpffunc"];
mysql_query("DELETE FROM funcionario where cpffunc = $cpffunc");
}elseif($_GET[acao] == "ExcluirLivro"){
$codISBN = $_GET["codISBN"];
mysql_query("DELETE FROM livro where codISBN = $codISBN");
}elseif($_GET[acao] == "ExcluirUsuario"){
$cpfus = $_GET["cpfus"];
mysql_query("DELETE FROM usuario where cpfus = $cpfus");
}

Espero ter entendido sua pergunta e ter ajudado.

Edited by eudeoliveira
Link to comment
Share on other sites

  • 0
Só pra ressaltar, se não me engano, caso o REGISTER_GLOBALS esteja como off, para resgatar os valores da passagem de parâmetros via browser é o $_REQUEST[] e não $_GET[]

abs

eudeoliveira, sim meu caro voce entendeu perfeitamente am inha duvida, so não deu certo porque precisou do request como o eudeoliveira disse,

obrigado a todos que colaboraram

e so mais uma pergunta , como funciona o request?

Link to comment
Share on other sites

  • 0

MTavares, na verdade é ao contrário :P

Quem depende do register_globals estar habilitado é o $_REQUEST. Se ele estiver desabilitado, somente funcionará o $_GET, $_POST e $_COOKIE.

e so mais uma pergunta , como funciona o request?

A variável $_REQUEST contém todas as variáveis/parâmetros que existem na variável $_GET (essa contém os parâmetros passados na URL), da variável $_POST (essa contém os parâmetros enviado via post, como por ex. um formulário) e também da variável $_COOKIE (informações de cookie). Mas utilizando a $_REQUEST você pode ter alguns problemas: os dados podem ser sobrescrevidos, as informações contidas nessa variável nem sempre serão confiáveis (pois o usuário pode alterá-las), você não sabe de onde está vindo a informação e outros "problemas".

E também a variável $_REQUEST depende de configuração do servidor (ela tem que estar habilitada no servidor), sendo que nem todos servidores tem essa opção habilitada e se não me engano, os mais atuais já vem com ela desabilitada.

Por isso, utilize o $_GET/$_POST/$_COOKIE quando for necessário.

Abraço

Edited by Stoma
Link to comment
Share on other sites

  • 0

Não gosto do $_REQUEST porque ele dificulta na manutenção de um script médio/grande já que você não sabe (a primeira vista) de onde os dados estão vindo. Essa mistura de dados diferentes me incomoda.

Realmente register_globals não parece ter relação: Usando a diretiva Register Globals e $_REQUEST.

Um abraço.

Link to comment
Share on other sites

  • 0

Sim... na verdade eu quis dizer que para pegar dados passados pelo querystring. Ex:

excluir.php?acao=ExcluirUsuario&cpffunc=$cpffunc

Se o Register_Globals estiver "off" uma das maneiras de pegar o valor é usar $_REQUEST["acao"] ou GET["acao"]. Desculpem, realmente me expressei mal no meu comentário anterior (mente cansada), era para ter escrito:

Só pra ressaltar, se não me engano, caso o REGISTER_GLOBALS esteja como off, para resgatar os valores da passagem de parâmetros via browser é o $_REQUEST[]e $_GET[]

No caso de um formulário, aí sim, continue usando o POST. Eu me referi ao $_REQUEST como uma outra opção além do GET, já que ele está pegando como GET, não seria necessariamente como uma regra.

Em relação a $_REQUEST ser problemática, interessante, sinceramente eu não sabia desse detalhe.

abs

Edited by MTavares
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...