Obtener registro específico de tabla SQL
Publicado por Álvaro (22 intervenciones) el 10/12/2019 21:10:41
Buenos días / tardes / noches. Sigo realizando el proyecto de la tienda de libros online, y de momento marcha sin ninguna complicación muy grande. Hace un ratillo conseguí mostrar los usuarios registrados para que el administrador pudiera cambiarle los permisos (hacer a los usuarios administradores) o eliminar dichos usuarios. Aquí está la tabla con los datos:

Como se ve en la imagen, al lado de cada usuario hay dos botones, uno para realizar un update modificando el tipo de usuario y otro para eliminarlo. En caso del primero hago lo siguiente:
En teoría no pasaría nada, salvo por el simple hecho de que el email que modifica siempre será el último registro de la tabla. La obtención de dicho email lo tengo de la siguiente manera:
Utilizo un hidden con la intención de pasarle al método modificarPermisos un email específico, pero no me funciona. Agradecería cualquier ayuda / consejo.
Un saludo, y muchas gracias

Como se ve en la imagen, al lado de cada usuario hay dos botones, uno para realizar un update modificando el tipo de usuario y otro para eliminarlo. En caso del primero hago lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
include_once "../../model/Conexion.php";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST["userEmail"])) {
modificarPermisos($_POST["userEmail"]);
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
}
function modificarPermisos($email)
{
$conexion = new Conexion();
$connection = $conexion->abrirConexion();
if (isset($connection)) {
$sql = "UPDATE UsuariosRegistrados SET esAdministrador = 1 WHERE email LIKE '" . $email . "'";
$connection->prepare($sql)->execute();
} else {
die("Error en la conexión");
}
}
En teoría no pasaría nada, salvo por el simple hecho de que el email que modifica siempre será el último registro de la tabla. La obtención de dicho email lo tengo de la siguiente manera:
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
<?php
$conexion = new Conexion();
$connection = $conexion->abrirConexion();
if (isset($connection)) {
$sql = "SELECT nombre, email, fechaNacimiento, esAdministrador FROM UsuariosRegistrados";
$query = $connection->query($sql)->fetchAll() or die("Consulta fallida");
echo "<form action='../controller/Admin/ModificacionUsuarios.php' method='post'>";
echo "<table class='table'>" . "<thead class='thead-dark'>" . "<tr>" . "<th scope='col'>Nombre</th>" . "<th scope='col'>Email</th>" . "<th scope='col'>Fecha de nacimiento</th>" . "<th scope='col'>Tipo de usuario</th>" . "<th scope='col'>Modificación</th>" . "</tr>" . "</thead>";
echo "<tbody>";
foreach ($query as $users) {
echo "<tr>";
echo "<td>" . $users["nombre"] . "</td>";
echo "<td>" . $users["email"] . "</td>";
echo "<td>" . $users["fechaNacimiento"] . "</td>";
echo "<td>" . $users["esAdministrador"] . "</td>";
echo "<td><button type='submit' class='btn btn-outline-elegant' style='margin-right: 5px'>Cambiar permiso</button> <button type='button' class='btn btn-outline-elegant'>Eliminar</button></td>";
echo "<td><input type='hidden' name='userEmail' value='" . $users["email"] . "'></td>";
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
echo "</form>";
} else {
die("Error de conexión");
}
$conexion->cerrarConexion();
?>
Utilizo un hidden con la intención de pasarle al método modificarPermisos un email específico, pero no me funciona. Agradecería cualquier ayuda / consejo.
Un saludo, y muchas gracias
Valora esta pregunta


0