Comunidad de diseño web y desarrollo en internet online

mostrar datos formulario

Citar            
MensajeEscrito el 30 Nov 2017 10:20 am
Hola 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>

Por Charly Utrilla

1 de clabLevel



 

estudiante desarrollador zaragozano

chrome
Citar            
MensajeEscrito el 30 Nov 2017 11:46 am
Tu boton hace un link via href a editar

<td><a class='btn btn-warning' href='editar.php?id=".$id."'>EDITAR</a>

Cuando lo que deberia es hacer un submit del form

Jorge

Por solisarg

BOFH

13432 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 30 Nov 2017 11:58 am
Muchas gracias por responder solisarg, pero no es ese el problema.
Aun poniendo submit necesito poner la etiqueta href para ir a esa página, y tampoco me rellena los campos del id seleccionado.

Por Charly Utrilla

1 de clabLevel



 

estudiante desarrollador zaragozano

chrome
Citar            
MensajeEscrito el 30 Nov 2017 12:06 pm
El unico valor que tiene el form es un id, te falta el resto
Y si vas a ir por get con un link, entonces no esperes los valores por POST

Jorge

Por solisarg

BOFH

13432 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome

   Página 1 de 1

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.