PHP - Ayuda recogida de formulario PHP

 
Vista:
Imágen de perfil de Alonsy

Ayuda recogida de formulario PHP

Publicado por Alonsy (4 intervenciones) el 15/07/2021 15:08:50
Buenas tardes. Me a surgido una duda con una practica.

CONTEXTO:
La idea es; tengo un formulario donde recojo nombre y edad del usuario, esos datos van a la base de datos que tengo vinculada, cuando se presiona el botón de enviar, carga la lista que hay en la base de datos, ofreciendo así, la ID (autoincrementada), nombre y edad, pero en esa lista también debe estar un enlace de borrar, no puede ser un botón, solo un enlace (lo piden así). Un enlace por cada línea, para poder borrar la que uno quiera. Hasta aquí todo bien.

Tampoco se me permiten tener varios archivos y moverme entre ellos, debe ser todo en el mismo archivo, menos la conexión con la base de datos.


PROBLEMA:
Ahora tengo que hacer, que cuando se borren todos los datos de la base de datos, automáticamente vuelva al formulario para así de nuevo, introducir datos en la BD. Os dejo por aquí lo que tengo de código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
 
// archivo de configuracion
include ('conexion.php');
 
// Variables recogidas del formulario
$nombre = $_POST['nombre'];
$edad = $_POST['edad'];
$envio=$_POST['enviar'];
$idBorrar=$_GET['idBorrar'];
 
if($idBorrar>0){
    $sql=mysqli_query($con, "DELETE FROM usuarios WHERE ID=$idBorrar");
}
 
if(!$idUser & !$nomUser & !$edadUser){
    '<a href="escribir-datos.php">';
}
 
 // ESCRIBIR DATOS EN LA BASE DE DATOS
if(!$envio & !$idBorrar){
    $html.= '<!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Escribir datos</title>
    </head>
    <body>
    <fieldset><legend>Escribir datos</legend>
    <form method="post" action="">
    Nombre : <input type="text" id="nombre" name="nombre"><br>
    Edad : <input type="text" id="edad" name="edad"><br>
    <br>
    <br>
    <input type="submit" id="enviar" name="enviar" value="Enviar">
    </form>
    </fieldset>
    </body>
    </html>';
 
}else{
    if(!$idBorrar){
        $sql = mysqli_query($con, "INSERT INTO usuarios (nombre, edad) VALUES ( '$nombre', '$edad')");
    }
 
    $sql=mysqli_query($con, "SELECT * FROM usuarios");
 
    while ($row = mysqli_fetch_array($sql)) {
        $idUser=$row['ID'];
        $nomUser=$row['nombre'];
        $edadUser=$row['edad'];
 
        $html.= $idUser . ' , ' . $nomUser . ' , ' .  $edadUser .  ' <a href="escribir-datos.php?idBorrar= ' . $idUser . ' ">Borrar</a><br> ';
 
    }
 
 
}
 
echo $html;
 
 
 
?>

Tambien os dejo las imagenes de las partes del formulario:

Recogida de los datos: Formulario
formuario_recogida

Datos recogidos: Ordenados por ID, nombre y edad
datos_recogidos

Datos al ser borrados:
borrar_dato_url

Como se puede ver en esta ultima, el metodo para el enlace de borrar es GET.

Una vez se eliminan todos los datos, se queda la pagina en blanco y en la url, el idBorrar con el ultimo ID que a borrado. De aquí ahora, tengo que mostrar de nuevo el formulario, nada mas borrar el ultimo dato.

Muchas gracias por tu tiempo y espero contar con tu gran ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jorge

Ayuda recogida de formulario PHP

Publicado por Jorge (69 intervenciones) el 16/07/2021 08:11:08
Hola!!

Prueba así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
 
// archivo de configuracion
include ('conexion.php');
 
// Variables recogidas del formulario
$nombre = $_POST['nombre'];
$edad = $_POST['edad'];
$envio=$_POST['enviar'];
$idBorrar=$_GET['idBorrar'];
 
if($idBorrar>0){
    $sql=mysqli_query($con, "DELETE FROM usuarios WHERE ID=$idBorrar");
}
 
if(!$idUser & !$nomUser & !$edadUser){
    '<a href="escribir-datos.php">';
}
 
 // ESCRIBIR DATOS EN LA BASE DE DATOS
$rows=mysqli_query($con, "SELECT * FROM usuarios");
 
if(mysqli_num_rows($rows)>0)
{
	if(!$idBorrar){
        $sql = mysqli_query($con, "INSERT INTO usuarios (nombre, edad) VALUES ( '$nombre', '$edad')");
    }
 
    $sql=mysqli_query($con, "SELECT * FROM usuarios");
 
    while ($row = mysqli_fetch_array($sql)) {
        $idUser=$row['ID'];
        $nomUser=$row['nombre'];
        $edadUser=$row['edad'];
 
        $html.= $idUser . ' , ' . $nomUser . ' , ' .  $edadUser .  ' <a href="escribir-datos.php?idBorrar= ' . $idUser . ' ">Borrar</a><br> ';
 
    }
 
	 } else {
 
    $html.= '<!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Escribir datos</title>
    </head>
    <body>
    <fieldset><legend>Escribir datos</legend>
    <form method="post" action="">
    Nombre : <input type="text" id="nombre" name="nombre"><br>
    Edad : <input type="text" id="edad" name="edad"><br>
    <br>
    <br>
    <input type="submit" id="enviar" name="enviar" value="Enviar">
    </form>
    </fieldset>
    </body>
    </html>';
 
}
 
echo $html;
 
?>

Coméntanos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alonsy

Ayuda recogida de formulario PHP

Publicado por Alonsy (4 intervenciones) el 16/07/2021 08:56:52
Hola Jorge, gracias, pero así directamente no guarda los datos en la BD, creo que lo unico que le falta al código que puse es un condicional que diga si la base de datos está vacía, que me muestre el formulario de nuevo, pero no atino con la manera correcta de añadirlo, aun así, muchas gracias de verdad! ;D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jorge

Ayuda recogida de formulario PHP

Publicado por Jorge (69 intervenciones) el 16/07/2021 09:50:44
Prueba colocando la condición en

1
2
3
if($idBorrar>0){
    $sql=mysqli_query($con, "DELETE FROM usuarios WHERE ID=$idBorrar");
}

Prueba así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
if($idBorrar>0){
$sql=mysqli_query($con, "DELETE FROM usuarios WHERE ID=$idBorrar");
 
$rows=mysqli_query($con, "SELECT * FROM usuarios");
if(mysqli_num_rows($rows)<1)
{
	$html.= '<!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Escribir datos</title>
    </head>
    <body>
    <fieldset><legend>Escribir datos</legend>
    <form method="post" action="">
    Nombre : <input type="text" id="nombre" name="nombre"><br>
    Edad : <input type="text" id="edad" name="edad"><br>
    <br>
    <br>
    <input type="submit" id="enviar" name="enviar" value="Enviar">
    </form>
    </fieldset>
    </body>
    </html>';
}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alonsy

Ayuda recogida de formulario PHP

Publicado por Alonsy (4 intervenciones) el 16/07/2021 12:43:45
Hola Jorge, tampoco da resultado, pero después de romperme la cabeza unas horas lo he conseguido xDD. Al final he conseguido que salga el formulario cuando borre todos los datos. Te dejo el código:

Está algo cambiado de lo primero que hice, pero lo importante es que por fin a salido.

Y de verdad, muchas gracias por todo :D.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
 
// archivo de configuracion
include ('conexion.php');
 
// Variables recogidas del formulario
$nombre = $_POST['nombre'];
$edad = $_POST['edad'];
$enviar=$_POST['enviar'];
$idBorrar=$_GET['idBorrar'];
if($enviar=='Enviar'){
$sql = mysqli_query($con, "INSERT INTO usuarios (nombre, edad) VALUES ( '$nombre', '$edad')");
}
if($idBorrar>0){
    $sql=mysqli_query($con, "DELETE FROM usuarios WHERE ID=$idBorrar");
}
 
$sql=mysqli_query($con, "SELECT COUNT(ID) AS count_id FROM usuarios");
if($row = mysqli_fetch_array($sql)) {
$resultado=$row['count_id'];
}
 
 
 
//generamos los distintos elementos que mostraremos en pantalla
$cabecera='<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Escribir datos</title>
</head>
<body>';
$pie="</body>
</html>";
 
 
$sql=mysqli_query($con, "SELECT * FROM usuarios");
    while ($row = mysqli_fetch_array($sql)) {
        $idUser=$row['ID'];
        $nomUser=$row['nombre'];
        $edadUser=$row['edad'];
        $listado.= $idUser . ' , ' . $nomUser . ' , ' .  $edadUser .  ' <a href="escribir-datos.php?idBorrar= ' . $idUser . ' ">Borrar</a><br> ';
    }
        $listado.='<br><a href="escribir-datos.php">volver a formulario</a>';
    $formulario= '
    <fieldset><legend>Escribir datos</legend>
    <form method="post" action="">
    Nombre : <input type="text" id="nombre" name="nombre"><br>
    Edad : <input type="text" id="edad" name="edad"><br>
    <br>
    <br>
    <input type="submit" id="enviar" name="enviar" value="Enviar">
    </form>
    </fieldset>
    ';
if($enviar=="Enviar"){
    $html=$listado;
}else{
    $html=$formulario;
}
if($idBorrar>0){
 if($resultado>0){
     $html=$listado;
 }else{
    $html=$formulario;
 }
 
}
 
 
echo $cabecera;
echo $html;
echo $pie;
 
 
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar