Ir para conteúdo
Fórum Script Brasil
  • 0

DÚVIDA COM CRUD PHP


bob_canastra

Pergunta

Caros amigos preciso de ajuda, vou mostrar dois códigos abaixo, um tem um campo em um form que tipo hidden e o outro não, porém ambos os códigos para crud são os mesmos. O problema é que no que não é hidden ele não aceita o seguinte código:

<code>

include 'conexao.php';

$codcliente=$_POST['codcliente'];

(...demais campos do form)

$operacao=$_POST['operacao']; //campo select com 4 opcoes

if($operacao==atualizar') {//atualizando

$codcliente=$_POST['codcliente];

$update='UPDATE `clinica_sangao`.`clientes` SET `nomecliente` =' . $nome .

' endereco=' . $endereco . ' telefone=' . $telefone .

' email=' . $email .' convenio=' . $convenio .

' senhaweb=' . $senhaweb .'WHERE `clientes`.`cod_cliente` ='.$codcliente;

$resultado=mysql_query( $update);

$linhas = mysql_affected_rows($resultado); //descobre o nº de linhas afetadas pela operação "mysql_query ($sql)" AQUI ELE DÁ ERRO!!

if($linhas==1)//VERIFICANDO SE A BUSCA PELO PRODUTO FOI EFETUADA,ATRAVÉS DO NUM DE LINHAS DO RESULTADO

{ echo "Produto excluído com sucesso!"; }

else

{ echo "Produto não encontrado!"; }

//header ("Location: cad_clientes.php");

}elseif($operacao=='atualizar' )demais ações: deletar,inserir e excluir

</code>

Para a inserção tá ok. O problema é que ele dá esse erro tanto para update quanto para delete: sendo que o banco contem o codigo recuperado pelo $_POST['codcliente']

<code>

( ! ) Warning: mysql_affected_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\Clinica_sangao\cad_clientes2.php on line 45

Call Stack

# Time Memory Function Location

1 0.0055 387080 {main}( ) ..\cad_clientes2.php:0

2 0.0421 394888 mysql_affected_rows ( ) ..\cad_clientes2.php:45

Produto não encontrado!

</code>

NESSE CODIGO ABAIXO O CAMPO "operaçao" é um <input type="hidden" name="operacao" value="incluir"(excluir,inserir)>, porém em 3 forms diferentes

<code><form method="POST" action="administra.php">

"form1"

<input type="hidden" name="operacao" value="excluir">

demais input's

</form>

<form method="POST" action="administra.php">

"form2"

<input type="hidden" name="operacao" value="inserir">

demais input's

</form>

<form method="POST" action="administra.php">

"form3"

<input type="hidden" name="operacao" value="atualizar">

demais input's

</form>

ALGUÉM ME AJUDE~!!!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

são 4 forms diferente cada um para um situação porem a ação fica tudo no mesmo arquivo ?

e ele não ta fazendo as outras ações so a do insert?

olha existe diversa formas de fazer isso sem ser no campo hidden

Primeiro - vou te pedir para por os codigos dentro do camp ode código para fica com uma visibilidade melhor.

Segundo - separe bem o texto e explique de uma forma direta e objetiva ( assim fica bem facil coomprender o que quer passar, as vezes rodeios de mais acaba atrapalahndo o nosso coomprendimento rsrs )

Terceiro - Bem, para você fazer isso é bem simples não requer nenhum campo hidden para complicar sua vida... como você já deve ter notado o seu botão é uma input sendo assim ele manda, valores também sendo assim coloque o name do input e o value

o value é o que aparece no botão

então se for para deleta deixei mostra

Deletar

Alterar

Cadastrar

os botoa ficaria assim

<input type="submit" name="botao" value="Cadastrar" />
<input type="submit" name="botao" value="Alterar" />
<input type="submit" name="botao" value="Deletar" />
depois no php você coloque condição
if($_POST['botao'] == 'Alterar') {

// Codigo Update

}

if($_POST['botao'] == 'Cadastrar') {

// Codigo Insert

}

if($_POST['botao'] == 'Deletar') {

// Codigo Delete

}

espero que tenha entendido

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, acho q não fui claro, então. É o seguinte:

1- tenho um form com um campo "codcliente" e um menu dropdown com as opçoes " inserir,excluir,cadastrar e buscar" nessa ordem.

2- os demais campos ( nome, email,...) estão todos validados;

3- o campo "codcliente" so vai ser utilizado pra busca,atualização e exclusão,a inserção não o utiliza( id auto_increment);

4- para evitar colocar 4 ou 5 botoes no form (estética) e para que o usuario faça tudo na mesma pagina, achei melhor um só botão enviar, e o menu dropdown de operações. Sendo assim tenho:

<form name="formcliente" method="post" action="cad_clientes2.php" onsubmit="valida(this)" >    
        
        Código do cliente (buscas,atualizações e exclusão):<br>
        <input type="text" id="codcliente" name= "codcliente" maxlength="6" size=6 onfocus="validacod_cli(this)">
                
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <select id="operacao" name="operacao" >
             <option value="inserir" >Inserir</option>
             <option value="buscar" >Buscar</option>
             <option value="excluir" >Excluir</option>
             <option value="atualizar" >Atualizar</option>
             </select>

*Nome: <br>
            <input type="text" name= "nome" size=90 ><br>

[demais inputs]

                        <input type ="submit" value="Enviar" >
            <input type="button"  value="Pesquisar" onclick="buscacliente.php">
            <input type ="reset" value="Limpar Campos">
            <input type="button" value="inicio"  OnClick="parent.location.href='hub.php'">

</form>
Sendo assim, a opção que você me mandou de colocar 3 buttons com mesmo "name" e "value" diferente, cai na mesma. O problema tá na função mysql_affected_rows() que requer um parametro do tipo resource QUE DEVERIA SER RETORNADO pela expressão:
$resultado=mysql_query( $update);
que por ser um UPDATE, retorna um boolean, portanto não é aceito na função mysql_affected_rows() Mas quando usei a mesma expressão abaixo no input hidden que mencionei, ele aceitou. PORQUÊ???????? ( ! ) Warning: mysql_affected_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\Clinica_sangao\cad_clientes2.php on line 45
if($operacao=='atualizar') {//atualizando
        $codcliente=$_POST['codcliente'];
        
        $resultado=mysql_query( $update);
                 
    $linhas = mysql_affected_rows($resultado); //descobre o nº de linhas afetadas pela operação "mysql_query ($sql)"
        if($linhas==1)//VERIFICANDO SE A BUSCA PELO PRODUTO FOI EFETUADA,ATRAVÉS DO NUM DE LINHAS DO RESULTADO
        { echo "Produto excluído com sucesso!"; }
        else
        { echo "Produto não encontrado!"; }
Espero ter sido mais claro agora. Por favor me ajude, pois ficar batendo cabeça com um CRUD simples desse ta me deixando P*** da vida... PS:Aproveitando o gancho, gostaria de saber como faço pra quando o usuario inserir o codigo do cliente, selecionar buscar(menu dropdown) e "enviar", mostrar os dados do cliente nos referidos campos do form ex: nomecliente->
$nome=$_POST['nome'];(lá do arquivo .php)

<input type="text" name="nome" value="<?php $nome ?>">

Agradeço a paciência e a atenção.

Editado por bob_canastra
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...