Foros | Webinarios | Blogs
 

Ayuda con CRUD

Seguir
Al cargar la pagina me sale el siguiente error: Notice: Undefined index: id in C:\xampp\htdocs\CRUD\formulario.php on line 50
la tabla se visualiza, pero no muestra los id enumerados, a que se debera el error?

Aqui el codigo:

<?php  
$con=mysqli_connect("localhost","root","","crud") or die("Se ha presentado un error en la conexion");

?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>CRUD</title>
</head>
<body>
<form method="POST" action="formulario.php">
    <label>Nombre:</label>
    <input type="text" name="nombre" placeholder="Escriba su nombre"><br>
    <label>Contraseña:</label>
    <input type="password" name="passw" placeholder="Escriba su contraseña"><br>
    <label>Email:</label>
    <input type="text" name="email" placeholder="Escriba su email"><br>
    <input type="submit" name="insert" value="Insertar Datos">
</form>
<?php 
if(isset($_POST['insert'])){
    $usuario=$_POST['nombre'];
    $pass=$_POST['passw'];
    $email=$_POST['email'];

    $insertar="INSERT INTO usuarios (usuario,password,email) VALUES('$usuario','$pass','$email')";

    $ejecutar=mysqli_query($con, $insertar);
    if($ejecutar){
        echo "<h1>Se insertó correctamente</h1>";
    }

}
?>
<table width="500" border="2" style="background-color: #F9F9F9;">
    <tr>
        <th>ID</th>
        <th>Usuario</th>
        <th>Password</th>
        <th>Email</th>
        <th>Editar</th>
        <th>Borrar</th>
    </tr>
    <?php 
    $consulta="SELECT * FROM usuarios";
    $ejecutar=mysqli_query($con, $consulta);
    $i=0;
    while ($fila=mysqli_fetch_array($ejecutar)) {
        $id=$fila['id'];
        $usuario=$fila['usuario'];
        $password=$fila['password'];
        $email=$fila['email'];

        $i++;
    
    ?>
    <tr align="center">
        <td><?php echo $id; ?></td>
        <td><?php echo $usuario; ?></td>
        <td><?php echo $password; ?></td>
        <td><?php echo $email; ?></td>
        <td><a href="formulario.php?editar=<?php echo $id; ?>">Editar</a></td>
        <td><a href="formulario.php?borrar=<?php echo $id; ?>">Borrar</a></td>
    </tr>
    <?php } ?>
</table>
</body>
</html>


1 Solución propuesta

hola amigo, si el problema es en la linea 50 mas o menos, al parecer es en tu iteracion de los resultados. Estan bien los nombres de los campos de mysql?
para no equivocarte, segun la sintaxis de mysqli mysqli_fetch_array(result,resulttype);
el resultype es el tipo de array devuelto que pueden ser

MYSQLI_ASSOC
MYSQLI_NUM
MYSQLI_BOTH


$sql="SELECT * FROM usuarios";
$result=mysqli_query($con,$sql);

// Array numerico
$fila=mysqli_fetch_array($result,MYSQLI_NUM);
$row[0]
$row[1]
$row[2]
$row[3]

// Array asociativo
$fila=mysqli_fetch_array($result,MYSQLI_ASSOC);
$fila['id'];
$fila['usuario'];
$fila['password'];
$fila['email'];

// Liberar el result set
mysqli_free_result($result);


entoces harias algo asi:

while ($fila=mysqli_fetch_array($result,MYSQLI_ASSOC)){
   echo $fila['id'];
   echo $fila['usuario'];
   echo $fila['password'];
   echo $fila['email'];
}

Proba asi para ver los resultados antes de colocarlos entre los tr td asi no te confundis. saludos