elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  mostrar datos formulario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: mostrar datos formulario  (Leído 892 veces)
Charly Utrilla

Desconectado Desconectado

Mensajes: 1



Ver Perfil WWW
mostrar datos formulario
« en: 30 Noviembre 2017, 15:06 pm »

Hola soy nuevo en este foro.
Estoy creando una pagina en php conectada a una base de datos mysql.
En esa pagina muestro los registros de la bbdd y dos botones por cada registro (editar y eliminar) para que al darle a uno me vaya a una pagina en el que, en el formulario me aparezcan los datos del registro que he seleccionado.
El problema es que me aparece la página con los registros en blanco, sin datos del objeto que quiero mostrar.
A continuación pongo el código de las dos páginas.
INDEX.PHP:
Código:
<!DOCTYPE html>
<html lang="en">
<head>
   <title>Articulos</title>
   <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
   <?php
      function conectar(){
         $con=mysqli_connect("localhost","root","","dam2d");
         return $con;
      }
      function desconectar(){
         mysqli_close(conectar());
      }
      if(conectar()->connect_error){
         die('Error de conexion: '.conectar()->connect_error);
      }else{
         $sql="SELECT * FROM articulos";
         $resul=mysqli_query(conectar(),$sql);
         echo "<table class='table' border='1'>";
         while($linea=mysqli_fetch_array($resul)){
            echo "<tr><td colspan='6' align='center'><b>ARTICULOS</b></td></tr>";
            echo "<tr><th>ID</th><th>Nombre</th><th>Precio</th><th>Fecha Alta</th><th>Acciones</th></tr>";
            echo "<tr>";
            echo "<td>",$linea['id'],"</td>";
            echo "<td>",$linea['nombre'],"</td>";
            echo "<td>",$linea['precio'],"</td>";
            echo "<td>",$linea['fechaalta'],"</td>";
            $id=$linea['id'];
            //echo $id;?>
            <form action='editar.php' method='post'>
            <input type='hidden' name='id' value='<?php $id ?>'>
            <?php
            echo "<td><a class='btn btn-warning' href='editar.php?id=".$id."'>EDITAR</a>"."&nbsp";
            echo "<a class='btn btn-danger' href='eliminar.php?id='".$id."''>ELIMINAR</a></td>";
            echo "</form>";
            echo "</tr>";
         }
      }
      desconectar();
   ?>
</body>
</html>
EDITAR.PHP:
Código:
<!DOCTYPE html>
<html lang="en">
<head>
   <title>Editar Articulo</title>
   <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
   <?php
      conectar();
      $id=isset($_POST['id']) ? $_POST['id'] : '';
      $nom=isset($_POST['nombre']) ? $_POST['nombra'] : '';
      $precio=isset($_POST['precio']) ? $_POST['precio'] : '';
      $fecha=isset($_POST['fechaalta']) ? $_POST['fechaalta'] : '';
   ?>
   <div class='container'>
      <div class='jumbotron'>
         <h1>Editar Articulo</h1>
         <p>Introduce todos los datos para editar un articulo en la base de datos.</p>
      </div>
      <form name='formularioeditar' action='index.php' method='post'>
      <div class='form-group'>
         <label for='id'>Introduce el id del articulo:</label>
         <input type='number' class='form-control' placeholder='Introduce el id' name='id' value="<?php echo $id ?>"><br>
         <label for='id'>Introduce el nombre de articulo:</label>
         <input type='text' class='form-control' placeholder='Introduce el nombre' name='nombre' value="<?php echo $nom ?>" size=30><br>
         <label for='precio'>Introduce el precio del articulo:</label>
         <input type='decimal' class='form-control' placeholder='Introduce el precio' name='precio' value="<?php echo $precio ?>"><br>
         <label for='fechaalta'>Introduce la fecha de alta del articulo:</label>
         <input type='date' class='form-control' placeholder='Introduce la fecha de alta' name='fechaalta' value="<?php echo $fecha ?>"><br>
      </div>
      <div class='botons-group'>
         <input type='submit' name='editar' value='EDITAR'>
         <input type='submit' name='volver' value='VOLVER'>
      </div>
      </form>
   </div>
   <?php
      function conectar(){
         $con=mysqli_connect("localhost","root","","dam2d");
         return $con;
      }
      function desconectar(){
         mysqli_close(conectar());
      }
      function editar(){
         $id=$_POST['id'];
         $nombre=$_POST['nombre'];
         $precio=$_POST['precio'];
         $fecha=$_POST_['fechaalta'];
         $esta=false;
         if(conectar()->connect_error){
            die('Error de conexion: '.conectar()->connect_error);
         }else{
            $sql="SELECT * FROM articulos WHERE id=".$id."";
            $resul=mysqli_query(conectar(),$sql);
            while($linea=mysqli_fetch_array($resul)){
               $esta=true;
            }
            if($esta==false){
               echo "No existe ningún articulo con el id ".$id;
            }
            if(!mysqli_query(conectar(),"UPDATE articulos SET nombre='".$nom."',precio='".$precio."',fechaalta='".$fecha."' WHERE id=".$id."")){
               echo "No se ha actualizado el articulo!".mysqli_error(conectar());
            }else{
               echo "Articulo actualizado!";
            }
         }
      }
      if(isset($_POST['editar'])){
         editar();
      }
      if(isset($_POST['volver'])){
         header('Location:index.php');
      }
      desconectar();
   ?>
</body>
</html>


En línea

Tusso4

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: mostrar datos formulario
« Respuesta #1 en: 21 Diciembre 2017, 19:43 pm »

Citar
<!DOCTYPE html>
<html lang="en">
<head>
   <title>Articulos</title>
   <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
   <?php
      function conectar(){
         $con=mysqli_connect("localhost","root","","dam2d");
         return $con;
      }
      function desconectar(){
         mysqli_close(conectar());
      }
      if(conectar()->connect_error){
         die('Error de conexion: '.conectar()->connect_error);
      }else{
         $sql="SELECT * FROM articulos";
         $resul=mysqli_query(conectar(),$sql);
         Lo que haces en esa linea es conectar a la base de datos y devolver el handler, cada query que hagas conectaras de nuevo a la base de datos?.
         Para ésto, si quieres una función para conectar, podría ser algo tal que así

      
Código:
$con = null;
function conectar(){
global $con;
$con=mysqli_connect("localhost","root","","dam2d");
}
function desconectar(){
global $con;
mysqli_close($con);
}
         Y para usar la función, solo deberás poner la función conectar(); y después en la query usar el hanlder almacenado en la variable $con;

         echo "<table class='table' border='1'>";
         while($linea=mysqli_fetch_array($resul)){
            echo "<tr><td colspan='6' align='center'><b>ARTICULOS</b></td></tr>";
            echo "<tr><th>ID</th><th>Nombre</th><th>Precio</th><th>Fecha Alta</th><th>Acciones</th></tr>";
            echo "<tr>";
            echo "<td>",$linea['id'],"</td>";
            echo "<td>",$linea['nombre'],"</td>";
            echo "<td>",$linea['precio'],"</td>";
            echo "<td>",$linea['fechaalta'],"</td>";
            $id=$linea['id'];
            //echo $id;?>
            <form action='editar.php' method='post'>
            <input type='hidden' name='id' value='<?php $id ?>'>
            <?php
            echo "<td><a class='btn btn-warning' href='editar.php?id=".$id."'>EDITAR</a>"."&nbsp";
            echo "<a class='btn btn-danger' href='eliminar.php?id='".$id."''>ELIMINAR</a></td>";
            echo "</form>";
            echo "</tr>";
         }
      }
      desconectar();
   ?>
</body>
</html>

Y en el código para editar, recuerda usar mysqli_real_escape_string para evitar inyecciones mysql.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines