• 0
Sign in to follow this  
newnoob

Acessar banco de dados com php

Question

Pessoal, tenho um codigo aqui que era pra fazer update num banco de dados, ele funcionaria da seguinte forma, depois que o usuario digita-se os dados a serem atualizados no banco de dados e clica-se em salvar, era pro banco ser atualizado, mas quando ele clica em salvar aparece o seguinte erro "Fatal error: Function name must be a string in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 21 ", não tenho nem ideia do que isso possa ser, se alguém puder me ajudar eu ficaria grato, vou psotar o codigo aqui abaixo pra ficar mais facil de vocês analisarem.

codigo:

<?php
            
        $username = "root";
        $password = "";
        $hostname = "localhost";

            // Conexão ao banco de dados.
        $dbhandle = mysql_connect($hostname, $username, $password)
            or die("Não foi possível conectar ao MySQL!");
                    
            // Seleciona o banco de dados.
        $selected = mysql_select_db("restaurante", $dbhandle)
            or die("Não foi possível selecionar o banco de dados restaurante!");
                    
        $Nome=$_POST['Nome'];//le o que foi digitado no campo nome, pelo metodo post do form
        $preço=$_POST['preço'];//le o preço
        $Categoria=$_POST['Categoria'];//le a ccategoria
        $url_imagem=$_POST['url_imagem']; //le a url digitada

            //agora vomos salvar
        if(!mysql_query("UPDATE produto SET Nome='$Nome', preço='$preço', Categoria='$Categoria', url_imagem='$url_imagem' WHERE ID=" . $_GET("ID"))){
            die ('ERROR:'. mysql_error());
                            
        }

            //agora vamos ver se salvou
        echo "<h1>Registro foi alterado com sucesso!</h1>";
        mysql_close($dbhandle);
?>

Share this post


Link to post
Share on other sites

12 answers to this question

Recommended Posts

  • 0

$preço=$_POST['preço'];//le o preço

O problema está ae, não se pode usar caracteres especiais para dar nomes a vareaveis, ao envés de "preço" deixe "valor"! o " ç " é o que ta causando o erro.

Edited by Nietore

Share this post


Link to post
Share on other sites
  • 0

Fiz tudo isso que vocês falaram, ams continua dando erro, o mesmo fatal error que dava:

"Fatal error: Function name must be a string in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 21"

Share this post


Link to post
Share on other sites
  • 0

Tenta assim:

<?php
            
        $username = "root";
        $password = "";
        $hostname = "localhost";

            // Conexão ao banco de dados.
        $dbhandle = mysql_connect($hostname, $username, $password)
            or die("Não foi possível conectar ao MySQL!");
                    
            // Seleciona o banco de dados.
        $selected = mysql_select_db("restaurante", $dbhandle)
            or die("Não foi possível selecionar o banco de dados restaurante!");
        $id = $_GET["ID"];           
        $Nome=$_POST['Nome'];//le o que foi digitado no campo nome, pelo metodo post do form
        $preço=$_POST['preço'];//le o preço
        $Categoria=$_POST['Categoria'];//le a ccategoria
        $url_imagem=$_POST['url_imagem']; //le a url digitada

            //agora vomos salvar
 $sql = mysql_query("UPDATE produto SET Nome='$Nome', preço='$preço', Categoria='$Categoria', url_imagem='$url_imagem' WHERE ID='$id'");
      if($sql) { 
            //agora vamos ver se salvou
        echo "<h1>Registro foi alterado com sucesso!</h1>";
        mysql_close($dbhandle);      
        } else {
        
        echo 'ERROR:'. mysql_error();
        mysql_close($dbhandle);     
        
        }

      
?>

Share this post


Link to post
Share on other sites
  • 0

fiz algumas alterações pra as colunas ficarem com os mesmos nomes do banco e deu esse erro aqui

Notice: Undefined index: ID in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 15

Notice: Undefined index: Nome in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 16

Notice: Undefined index: preço in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 17

Notice: Undefined index: Categoria in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 18

Notice: Undefined index: url_imagem in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 19

Registro foi alterado com sucesso!

Share this post


Link to post
Share on other sites
  • 0

Tenta com esse codigo.

antes pegue seu arquivo de formulario la no PREÇO e tire o Ç e deixe C ....

<?php
            
        $username = "root";
        $password = "";
        $hostname = "localhost";

            // Conexão ao banco de dados.
        $dbhandle = mysql_connect($hostname, $username, $password)
            or die("Não foi possível conectar ao MySQL!");
                    
            // Seleciona o banco de dados.
        $selected = mysql_select_db("restaurante", $dbhandle)
            or die("Não foi possível selecionar o banco de dados restaurante!");
        $id = $_GET["ID"];          
        $Nome=$_POST['Nome'];//le o que foi digitado no campo nome, pelo metodo post do form
        $preço=$_POST['preço'];//le o preço
        $Categoria=$_POST['Categoria'];//le a ccategoria
        $url_imagem=$_POST['url_imagem']; //le a url digitada

            //agora vomos salvar
$sql = mysql_query("UPDATE produto SET Nome='$Nome', preço='$preço', Categoria='$Categoria', url_imagem='$url_imagem' WHERE ID='$id'");
      if($sql) {
            //agora vamos ver se salvou
        echo "<h1>Registro foi alterado com sucesso!</h1>";
        mysql_close($dbhandle);      
        } else {
        
        echo 'ERROR:'. mysql_error();
        mysql_close($dbhandle);    
        
        }

      
?>

Share this post


Link to post
Share on other sites
  • 0

deixei meu codigo assim, todos os preços sem Ç com C e Coloquei todas as iniciais com letra maiuscula porque é assim que ta no banco, e o ID ta todo maiusculo

o codigo fico assim

<?php
            
        $username = "root";
        $password = "";
        $hostname = "localhost";

            // Conexão ao banco de dados.
        $dbhandle = mysql_connect($hostname, $username, $password)
            or die("Não foi possível conectar ao MySQL!");
                    
            // Seleciona o banco de dados.
        $selected = mysql_select_db("restaurante", $dbhandle)
            or die("Não foi possível selecionar o banco de dados restaurante!");
        $ID = $_GET["ID"];          
        $Nome=$_POST['Nome'];//le o que foi digitado no campo nome, pelo metodo post do form
        $preço=$_POST['preço'];//le o preço
        $Categoria=$_POST['Categoria'];//le a ccategoria
        $url_imagem=$_POST['url_imagem']; //le a url digitada

            //agora vomos salvar
$sql = mysql_query("UPDATE produto SET Nome='$Nome', preço='$preço', Categoria='$Categoria', url_imagem='$url_imagem' WHERE ID='$ID'");
      if($sql) {
            //agora vamos ver se salvou
        echo "<h1>Registro foi alterado com sucesso!</h1>";
        mysql_close($dbhandle);      
        } else {
        
        echo 'ERROR:'. mysql_error();
        mysql_close($dbhandle);    
        
        }

      
?>

só que ta dando esse erro

Notice: Undefined index: ID in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 14

Notice: Undefined index: Nome in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 15

Notice: Undefined index: preço in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 16

Notice: Undefined index: Categoria in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 17

Notice: Undefined index: url_imagem in C:\xampp\htdocs\restaurante\paginas\atualiza_produtos.php on line 18

ERROR:Unknown column 'preço' in 'field list'

não sei por que, mas o preço eu modifico, tiro o Ç e coloca com letra maiuscula, mas na hora de copir pro tópico ele coloca o Ç e minuscula, mas no codigo ta certo como eu falei inicialmente

Edited by newnoob

Share this post


Link to post
Share on other sites
  • 0

absoluta cara, o meu arquivo form é esse:

<form action="atualiza_produtos.php" method="post">
    Digite o novo nome: <input type="text" name="Nome" /><br />
    Digite o novo preço: <input type="text" name="preço" /><br />
    Digite a nova categoria: <input type="text" name="Categoria" /><br />
    Digite a nova url da imagem: <input type="text" name="url_imagem" /><br />
    <input type="submit" value="Salvar"/>
</form>

Share this post


Link to post
Share on other sites
  • 0

Coloca um print_r($_POST); logo no começo da sua atualiza_produtos.php e fala o que aparece.

Share this post


Link to post
Share on other sites
  • 0

Aparece isso depois que eu digito pra fazer o update

Array ( [Nome] => Batata Frita [Categoria] => E [preço] => 3,00 [url_imagem] => )

Share this post


Link to post
Share on other sites
  • 0

que bruxaria é essa...

Ok, faz assim: pega a parte aonde você seta as variáveis (codigo abaixo) e coloca essa parte exatamente no mesmo lugar aonde você testou o print_r. Acho que pode ser algum tipo de problema de escopo dentro do seu código (apesar de não fazer idéia do porque).

$ID = $_GET["ID"];          
        $Nome=$_POST['Nome'];//le o que foi digitado no campo nome, pelo metodo post do form
        $preço=$_POST['preço'];//le o preço
        $Categoria=$_POST['Categoria'];//le a ccategoria
        $url_imagem=$_POST['url_imagem']; //le a url digitad

Share this post


Link to post
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.

Sign in to follow this