How do I get a die on one page and put on another?

1

I need to get a data sent by the user through the GET method on a page, put that data in the database and, on another page, I need to read that data from the database and write the page. In this case, I have a table named comandos where I have two columns nome and valor and I want to get the data from the valor field that is on the same line where the nome field contains the value LED1 / p>

I tried this, but it did not work:

Page 1

mysql_connect("u541106066_estad","u541106066_ctp","jkf45s6f4sdf4");
$sSQL="Update comandos Set valor='$_GET_["LED1"]' Where nome='LED1'";
mysql_db_query("u541106066_estad",$sSQL);

Page 2

mysql_connect("u541106066_estad","u541106066_ctp","81GDYC2lDC");
$sql = 'SELECT valor FROM comandos';
echo "led=$ql";
    
asked by anonymous 03.08.2015 / 18:33

2 answers

1

What you want seems very simple, you can do it this way:

  • Create a class (file: Database.php) to access the database using PDO, as in the example below:
  • class Database {
    
     private static $servidor = 'localhost'; // Servidor, no caso poderia ser também localhost
     private static $usuario = 'u541106066_ctp'; // usuário do banco de dados
     private static $senha = 'jkf45s6f4sdf4'; // senha do banco de dados
     private static $banco = 'u541106066_estad'; // nome do banco de dados
     private static $instance = null;
    
     //inicia a conexão
      public static function getConnection() {
         if (!self::$instance instanceof PDO) {
             try {
                 self::$instance = new PDO('mysql:host=' . 
                 self::$servidor . ';dbname=' . 
                 self::$banco, 
                 self::$usuario, 
                 self::$senha, 
                 array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
             } catch (PDOException $exc) {
               echo "Erro ao conectar :: {$exc->getMessage()}";
             }
         } 
      return self::$instance;
      }
    
    //metodo para trazer vários resultados
      public function fetchAll($query) {
         $con = self::getConnection();
         $stmt = $con->prepare($query);
         $this->execute($stmt);
    
         if ($stmt->rowCount()) {
            return $stmt->fetchAll(PDO::FETCH_OBJ);
         } else {
           return false;
         }
      }
    
    //metodo para trazer um resultado
     public function fetch($query) {
        $con = self::getConnection();
        $stmt = $con->prepare($query);
        $this->execute($stmt);
    
        if ($stmt->rowCount()) {
             return $stmt->fetch(PDO::FETCH_OBJ);
        } else {
          return false;
        }
     }
    
     //executa o PDO
      public function execute(PDOStatement $stmt, array $data = null) {
         try {
               if (isset($data)) {
                   $stmt->execute($data);
               } else {
               $stmt->execute();
               }
         } catch (PDOException $exc) {
           echo $exc->getTraceAsString();
           var_dump($exc->getMessage());
         }
      }
    
     //metodo para inserir e atualizar dados
      public function save($sql, array $data) {
    
         $con = self::getConnection();
         $stmt = $con->prepare($sql);
         $this->execute($stmt, $data);
    
         if ($stmt->rowCount()) {
            return true;
         } else {
           return false;
         }
      }
    
    }
    
  • Use the class to get the data from the database, create a file of type index.php and in this file do the following:
  • 
    //primeiro você precisa incluir a classe
    require_once("Database.php");
    
    //agora você precisa instanciá-la:
    $conexao = new Database();
    
    /*
    Agora basta chamar o método para a query que você quer buscar no seu banco, através da requisição GET.
    - no seu caso /index.php?id=1
    - Armazene numa variável o valor que receber
    */
    $requisicao_consulta = (isset($_GET['id'])) ? $_GET['id'] : null;
    //para post, salva a id no campo hidden 
    $valor_id = ($_POST['id'] != '') ? $_POST['id'] : null;
    //requisição de inclusão/atualização
    $requisicao_save = (isset($_POST['action'])) ? $_POST['action'] : null;
    
    if ($requisicao_save != null) {
    
        $values = [
           'id' => $valor_id,
           'val1' => $_POST['valor1'],
           'val2' => $_POST['valor2'],
           'val3' => $_POST['valor3'],
        ];
    
    } else {
    
        if ($requisicao_consulta != null) {
            $data = $conexao->fetch("SELECT id,
                                            valor1,
                                            valor2,
                                            valor3 
                                     FROM   comandos
                                     WHERE  id='$requisicao_consulta'");
        }
    
        $message = "- Preencha o formulário abaixo:\n<br>";
    
        if (isset($_GET['success-insert'])) {
           $message .= "Dados cadastrados com sucesso!\n<br>";
        }
    
        if (isset($_GET['success-update'])) {
           $message .= "Dados atualizados com sucesso!\n<br>";
        }
    }
    
    //agora basta chamar a query com a requisição
    
    if ($requisicao_save == 'insert' && $valor_id == null) {
       $execute = $conexao->save("INSERT INTO comandos
                                  (id, valor1, valor2, valor3)
                                  VALUES (:id,:val1,:val2,:val3);",
                                  $values);
       header('Location: index.php?success-insert');
    }
    
    if ($requisicao_save == 'update' && $valor_id != null) {
       $execute = $conexao->save("UPDATE comandos SET
                                  valor1=:val1,
                                  valor2=:val2,
                                  valor3=:val3
                                  WHERE id:id;",
                                  $values);
      header('Location: index.php?success-update');
    }
    
    //a variável $data representa os dados (em objeto) que contém o conjunto de valores trazido pela similaridade da sua requisição, como não é uma coleção, "não" utilizamos $conexao->fetchAll("..."), onde teríamos uma coleção em array. Desta maneira, vamos construir um formulário para preencher os dados que serão alterados (vou escrever em php mesmo, depois você refatora se achar melhor):  
    
    $inputs = [];
    
    $action = 'insert';
    
    if (!empty($data)) {
    
        $action = 'update';
        foreach ($data as $key => $dado) {
        $inputs["<label>{ucwords($key)}</label>\n<input type=\"text\" value=\"{$dado->$key}\" name=\"{$key}\">"];
        }
    
        $inputs["<input type=\"hidden\" name=\"action\" value=\"update\">"];
    
    } else {
    
        for ($i=1; $i <= 3; $i++) {
            $inputs["<label>Valor {$i}</label>\n<input type=\"text\" value=\"\" name=\"valor{$i}\">"];
        }
    
    }
    $inputs["<input type=\"hidden\" name=\"action\" value=\"{$action}\">"];
    $inputs["<input type=\"hidden\" name=\"id\" value=\"{$valor_id}\">"];
    $inputs["<input type=\"submit\" value=\"Salvar\">"];
    echo "<div id=\"mensagem\" class=\"msg\">{$message}</div>\n";
    echo "<form method=\"post\" action=\"{$_SERVER['SCRIPT_NAME']}\" name=\"send\" id=\"send\">\n";
    echo implode("\n<br />", $inputs);
    echo "</form>";
     
        
    03.08.2015 / 21:51
    0

    On page 2, do the following:

    $res = mysql_db_query($sql);
    
    while ($row = mysql_fetch_assoc($res)) {
        echo $row['valor'];
    }
    
        
    03.08.2015 / 21:18