Ir ao conteúdo
  • Cadastre-se
Matheus Bombardi

[PHP] Consultar, Editar e Deletar Arquivos

Recommended Posts

Fala galera, beleza?

 

Estou na última parte do meu trabalho de TCC que consiste em uma tabela que consulta, edita e apaga usuários... porém não sei como fazê-la e não vejo nenhum tutorial util... pois eu preciso de um modelo parecido com este que está em anexo...

 

Alguem pode me ajudar? Nivel de urgência: Máximo! Preciso entregar neste sábado, 06/12 !!

 

 

post-740340-0-74273700-1417554503_thumb.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu não vou dar um código pronto, mas eu posso te ajudar. Segue as instruções:

 

1º - Você vai fazer a checagem dos usuários no banco de dados que você está usando (por exemplo: $query =  mysql_query(SELECT * FROM exemplo))

2º - Depois você chama a função mysql_num_rows para fazer a contagem de usuários (Exemplo: $numero = mysql_num_rows($query))

3º - Agora você cria um for que pegue todos os usuários com a quantidade que existe (por exemplo: for($i = 1; $i <= $numero; $i++))

4º - Dentro do for você cria a <div> ou <table> (tabela em html) com o nome do usuário, Editar e Excluir, onde no Editar e Excluir você cria um indexador para outro código PHP para as ambas funções, mas passando como parâmetro o nome do usuário e qual a função desejada.

 

Caso for EDITAR passa por parâmetro edit ou alguma outra palavra que você queira (exemplo: ?usuario=$usuario&func=edit)

-Você pega todas as informações contida sobre usuário no Banco de Dados, e cria os campos para alteração

 

Caso for DELETAR passa por parâmetro delet ou alguma outra palavra que você queira (exemplo: ?usuario=$usuario&func=delet)

-Você pega o nome do usuário passado e usa a função DELETE FROM exemplo WHERE usuario = '$usuario'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, possuo este código que eu estava fazendo porém ta dando uns erros... eu entendo o que tu diz, porém como sou novo, não consigo por em prática...

        <div id="pesquisar">            <table width="500" border="0" cellpadding="3" cellspacing="3">            <tr>                <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Nome</span></td>                <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Sobrenome</span></td>                <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Login</span></td>                <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Senha</span></td>        </tr>        <?php        $conexao = mysqli_connect("localhost","root","","login_senha");        $sql_visualizar = mysql_query("SELECT nome,sobrenome,login,senha FROM usuario");        while ($linha = mysql_fetch_array($sql_visualizar)){            $nome = $linha['nome'];            $sobrenome = $linha['sobrenome'];            $login = $linha['login'];            $senha = $linha['senha'];                ?>        <tr>            <td> <?php echo $nome ?></td>            <td align="center"><a href="funcoes.php?funcao=editar">Editar</a></td>            <td align="center"><a href="funcoes.php?funcao=excluir">Excluir</a></td>            </tr><?php}?>            </table>        </div><!--fim div pesquisar-->

e da estes dois erros...

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp\www\prottus\perfil.php on line 196
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\wamp\www\prottus\perfil.php on line 197

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na parte abaixo

 $sql_visualizar = mysql_query("SELECT nome,sobrenome,login,senha FROM usuario");

Não há necessidade de colocar nome, sobrenome, login, senha, simplesmente coloque (@mysql_query ($conexao , "SELECT * FROM usuario")), depois veja o número de usuarios com o mysqli_num_rows, ai sim você cria um for até o numero de usuários, com isso dentro do for você usa o mysqil_fetch_array

 

Ficaria +- assim:

$conexao = mysqli_connect("localhost","root","","login_senha");$sql_visualizar = mysql_query("SELECT * FROM usuario");$num = mysqli_num_rows($sql_visualizar);for($i = 0; $i <= $num; $++)){$linha = mysqli_fetch_array($sql_visualizar);$nome = $linha['nome'];$sobrenome = $linha['sobrenome'];$login = $linha['login'];$senha = $linha['senha'];//Resto do código}

Desculpa esqueci que não usa mais mysql, e sim msqli, mas se caso for usar mysql coloque o @ antes (exemplo @mysql_...)

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Matheus Bombardi

 

O erro desta linha:

$sql_visualizar = mysql_query("SELECT nome,sobrenome,login,senha FROM usuario");

erro 1,  você chamou a conexao do mysqli .. mas  executou com o mysql.  além de que faltou a variável conexao antes da consulta.

 

Troque-a por:

$sql_visualizar = mysqli_query($conexao,"SELECT nome,sobrenome,login,senha FROM usuario");

erro 2, a linha dentro do while:

$linha = mysql_fetch_array($sql_visualizar)

também está errada.

 

troque-a por:

$linha = mysqli_fetch_array($sql_visualizar)

att,

Dif

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dif

sobre o mysqli eu tinha arrumado porém o erro continua... o mesmo botando o $conexão dentro do select...

 

@horctos

fiz o que tu falou, dei uma ajustada e da erro na linha do for

Parse error: syntax error, unexpected '++' (T_INC), expecting variable (T_VARIABLE) or '$' in C:\wamp\www\prottus\perfil.php on line 199

ai eu tentei remover o $++ , porém fica carregando e não entra mais no perfil...

 

*obs

 

este erro ocorre quando tento entrar no perfil.php, não visualizo mais nada, apenas da este erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Matheus Bombardi

 

Evite usar o laço de for para este tipo de coisa.

 

Eu faria deste modo:

<div id="pesquisar">   <table width="500" border="0" cellpadding="3" cellspacing="3">      <tr>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Nome</span></td>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Sobrenome</span></td>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Login</span></td>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Senha</span></td>     </tr>            <?php           include 'conexao.php';        $sql_visualizar = mysqli_query($conexao ,"SELECT * FROM usuario");        while ($usuario = mysqli_fetch_object($sql_visualizar)):                  echo " <tr>                    <td>$usuario->nome</td>                  <td>$usuario->sobrenome</td>                  <td>$usuario->login</td>                  <td>$usuario->senha</td>               <td align="center"><a href="funcoes.php?funcao=editar">Editar</a></td>            <td align="center"><a href="funcoes.php?funcao=excluir">Excluir</a></td>            </tr>             ";         ?>    </table>        </div><!--fim div pesquisar-->

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

@Matheus Bombardi

 

Evite usar o laço de for para este tipo de coisa.

 

Eu faria deste modo:

<div id="pesquisar">   <table width="500" border="0" cellpadding="3" cellspacing="3">      <tr>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Nome</span></td>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Sobrenome</span></td>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Login</span></td>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Senha</span></td>     </tr>            <?php           include 'conexao.php';        $sql_visualizar = mysqli_query($conexao ,"SELECT * FROM usuario");        while ($usuario = mysqli_fetch_object($sql_visualizar)):                  echo " <tr>                    <td>$usuario->nome</td>                  <td>$usuario->sobrenome</td>                  <td>$usuario->login</td>                  <td>$usuario->senha</td>               <td align="center"><a href="funcoes.php?funcao=editar">Editar</a></td>            <td align="center"><a href="funcoes.php?funcao=excluir">Excluir</a></td>            </tr>             ";         ?>    </table>        </div><!--fim div pesquisar-->

 

@dif Qual o motivo do echo? Qual seria a funcionalidade dele neste código?

 

Também agora, sem motivo, está dando erro do align center da td...

Parse error: syntax error, unexpected 'center' (T_STRING), expecting ',' or ';' in C:\wamp\www\prottus\perfil.php on line 205

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Matheus Bombardi

 

o "echo" faz o mesmo que "print" imprime em tela as variáveis.

O erro que apareceu ... foi porque eu esqueci de alterar as aspas. 

Note que:

 

se usar aspas duplas antes.. qualquer aspas dentro tem de ser simples( erro meu de digitação)

echo " <tr>                    <td>$usuario->nome</td>                  <td>$usuario->sobrenome</td>                  <td>$usuario->login</td>                  <td>$usuario->senha</td>               <td align='center'><a href='funcoes.php?funcao=editar'>Editar</a></td>            <td align='center'><a href='funcoes.php?funcao=excluir'>Excluir</a></td>            </tr>             ";endwhile;

Outro erro meu..  esqueci de fechar o while. lol.  

ps: eu uso a sintaxe alternativa do php que não usa chaves {} para fechar os blocos.

 

então o código ficaria assim:

<div id="pesquisar">   <table width="500" border="0" cellpadding="3" cellspacing="3">      <tr>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Nome</span></td>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Sobrenome</span></td>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Login</span></td>         <td width="80" align="center" bgcolor="#CCCCCC"><span class="style9">Senha</span></td>     </tr>            <?php           include 'conexao.php';        $sql_visualizar = mysqli_query($conexao ,"SELECT * FROM usuario");        while ($usuario = mysqli_fetch_object($sql_visualizar)):                  echo " <tr>                    <td>$usuario->nome</td>                  <td>$usuario->sobrenome</td>                  <td>$usuario->login</td>                  <td>$usuario->senha</td>               <td align='center'><a href='funcoes.php?funcao=editar'>Editar</a></td>            <td align='center'><a href='funcoes.php?funcao=excluir'>Excluir</a></td>            </tr>             ";          endwhile;           ?>    </table>         </div><!--fim div pesquisar-->

acho que agora funcionaria bem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dif

 

Hmmm, não sabia do uso das aspas simples quando dentro de uma aspas duplas... Agora o código está aparecendo bem bonito! Só falta fazer um editar e excluir que eu vi em um vídeo porém não fica muito claro... sabe onde eu posso encontrar algum conteudo que explique para eu poder fazer? (logo clicarei no resolvido neste seu post)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então.

É bem mais simples do que você imagina.

 

Basicamente você altera as linhas 20 e 21 do post #09 ali em cima.

 

Como você está listando todos os dados dentro do while por usuário, você precisa fazer com que ao clicar no link editar por exemplo.. ele envie ao funcoes.php o código de ID do registro ..

 

então ficaria deste modo:

<td align='center'><a href='funcoes.php?funcao=editar&id=$usuario->id'>Editar</a></td>

Veja que o "id" seria o nome do campo ID auto incrementado da sua tabela.

 

Agora no arquivo funcoes.php.. você recebe estes dois parâmetros via $_GET

deste modo:

<?php   $acao = $_GET["funcao"];   $id   = $_GET["id"];   if($acao == "editar"):        // exibe os dados para editar        // executa a instrução de editar ( UPDATE [nome da tabela] SET )   else:       // se entrar neste bloco é pq clicou no excluir       // executa a instrução de deletar no SQL   endif; 

Esta é a logica. agora a ação propriamente dita dentro do if e do else é contigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

fiz o que tu falou, dei uma ajustada e da erro na linha do for

É porque eu esqueci de colocar $i++

 

 

fiz o que tu falou, dei uma ajustada e da erro na linha do for

É porque eu esqueci de colocar $i++

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×