Ecommerce Shopify WordPress Discussion

I have a problem trying to update a register

I have a problem, I currently have a table called "nuevo_jugador". On the page I have a search engine, when I enter the identification the player appears. The problem is that it doesn't let me edit it but every time I modify some data it inserts a new record. what would be the problem? thank you This Is my table: id mediumint(9) NOT NULL AUTO_INCREMENT, nombre varchar(50) NOT NULL, apellido varchar(50) NOT NULL, dni varchar(20) NOT NULL UNIQUE, fecha_nacimiento date NOT NULL, direccion varchar(255) NOT NULL, telefono varchar(20) NOT NULL, categoria varchar(20) NOT NULL, fecha_alta date NOT NULL, PRIMARY KEY (id) ` <?php session_start(); add_action('init', 'procesar_solicitud_modificar_jugador'); function procesar_solicitud_modificar_jugador() { if (isset($_POST['id']) && isset($_POST['nombre']) && isset($_POST['apellido']) && isset($_POST['dni']) && isset($_POST['fecha_nacimiento']) && isset($_POST['direccion']) && isset($_POST['telefono']) && isset($_POST['categoria']) && isset($_POST['fecha_alta'])) { // Obtener los datos del formulario $id = absint($_POST['id']); $nombre = sanitize_text_field($_POST['nombre']); $apellido = sanitize_text_field($_POST['apellido']); $dni = sanitize_text_field($_POST['dni']); $fecha_nacimiento = sanitize_text_field($_POST['fecha_nacimiento']); $direccion = sanitize_text_field($_POST['direccion']); $telefono = sanitize_text_field($_POST['telefono']); $categoria = sanitize_text_field($_POST['categoria']); $fecha_alta = sanitize_text_field($_POST['fecha_alta']); // Insertar o actualizar en la base de datos global $wpdb; $tabla = $wpdb->prefix . 'nuevo_jugador'; // Obtener el DNI existente del jugador para comparar $dni_existente = $wpdb->get_var($wpdb->prepare("SELECT dni FROM $tabla WHERE id = %d", $id)); // Verificar si el DNI ha cambiado y si el nuevo DNI ya existe en otro registro if ($dni_existente !== $dni) { $existing_player = $wpdb->get_row($wpdb->prepare("SELECT * FROM $tabla WHERE dni = %s", $dni)); if ($existing_player) { echo '<p style="color: red;">Ya existe un jugador con el nuevo DNI ingresado.</p>'; return; } } // Actualizar datos existentes $wpdb->update( $tabla, array( 'nombre' => $nombre, 'apellido' => $apellido, 'dni' => $dni, 'fecha_nacimiento' => $fecha_nacimiento, 'direccion' => $direccion, 'telefono' => $telefono, 'categoria' => $categoria, 'fecha_alta' => $fecha_alta, ), array('id' => $id) ); echo '<script>'; echo 'alert("Jugador actualizado correctamente");'; echo 'window.location.href="?";'; echo '</script>'; exit(); } } // Shortcode para buscar y modificar jugador function buscar_modificar_jugador() { ob_start(); // Inicia el buffer de salida ?> <div style="text-align: center; margin-top: 20px;"> <h2 style="margin-bottom: 10px; font-size: 18px;">Buscar y Modificar Jugador</h2> <form method="post" action="" style="max-width: 400px; margin: 0 auto;"> <label for="dni_busqueda">Ingrese DNI:</label> <input type="text" name="dni_busqueda" required> <input type="submit" value="Buscar"> </form> <?php if (isset($_POST['dni_busqueda'])) { $dni_busqueda = sanitize_text_field($_POST['dni_busqueda']); global $wpdb; $tabla = $wpdb->prefix . 'nuevo_jugador'; // Obtener los datos del jugador para mostrar en el formulario de modificación $jugador = $wpdb->get_row($wpdb->prepare("SELECT * FROM $tabla WHERE dni = %s", $dni_busqueda)); if ($jugador) { // Mostrar formulario de modificación con los datos del jugador encontrado ?> <form method="post" action=""> <h2 style="margin-bottom: 10px; font-size: 18px;">Modificar Jugador</h2> <input type="hidden" name="id" value="<?php echo esc_attr($jugador->id); ?>"> <table style="width: 100%;"> <tr> <td style="text-align: right;"><label for="nombre">Nombre:</label></td> <td><input type="text" name="nombre" value="<?php echo esc_attr($jugador->nombre); ?>" required></td> </tr> <tr> <td style="text-align: right;"><label for="apellido">Apellido:</label></td> <td><input type="text" name="apellido" value="<?php echo esc_attr($jugador->apellido); ?>" required></td> </tr> <tr> <td style="text-align: right;"><label for="dni">DNI:</label></td> <td><input type="text" name="dni" value="<?php echo esc_attr($jugador->dni); ?>" required></td> </tr> <tr> <td style="text-align: right;"><label for="fecha_nacimiento">Fecha de Nacimiento:</label></td> <td><input type="date" name="fecha_nacimiento" value="<?php echo esc_attr($jugador->fecha_nacimiento); ?>" required></td> </tr> <tr> <td style="text-align: right;"><label for="direccion">Dirección:</label></td> <td><input type="text" name="direccion" value="<?php echo esc_attr($jugador->direccion); ?>" required></td> </tr> <tr> <td style="text-align: right;"><label for="telefono">Teléfono:</label></td> <td> <input type="text" name="telefono" id="telefono" value="<?php echo esc_attr($jugador->telefono); ?>" required> <br> <small style="color: red;">(No incluir el 0 ni el 15)</small> </td> </tr> <tr> <td style="text-align: right;"><label for="categoria">Categoría:</label></td> <td> <select name="categoria" required> <option value="Escuelita" <?php selected($jugador->categoria, 'Escuelita'); ?>>Escuelita</option> <option value="Pre-Mini" <?php selected($jugador->categoria, 'Pre-Mini'); ?>>Pre-Mini</option> <option value="Mini" <?php selected($jugador->categoria, 'Mini'); ?>>Mini</option> <option value="U13" <?php selected($jugador->categoria, 'U13'); ?>>U13</option> <option value="U15" <?php selected($jugador->categoria, 'U15'); ?>>U15</option> <option value="U17" <?php selected($jugador->categoria, 'U17'); ?>>U17</option> <option value="Femenino" <?php selected($jugador->categoria, 'Femenino'); ?>>Femenino</option> <option value="Primera" <?php selected($jugador->categoria, 'Primera'); ?>>Primera</option> <option value="Veteranos" <?php selected($jugador->categoria, 'Veteranos'); ?>>Veteranos</option> </select> </td> </tr> <tr> <td style="text-align: right;"><label for="fecha_alta">Fecha de Alta:</label></td> <td><input type="date" name="fecha_alta" value="<?php echo esc_attr($jugador->fecha_alta); ?>" required></td> </tr> </table> <div style="margin-top: 15px;margin-bottom: 30px; text-align: center;"> <input type="submit" value="Guardar Cambios" style="margin-right: 10px;"> <input type="reset" value="Restablecer"> </div> </form> <?php } else { echo '<p style="color: red;">No se encontró ningún jugador con el DNI ingresado.</p>'; } } ?> </div> <?php return ob_get_clean(); // Devuelve el contenido del buffer de salida } // Registrar el shortcode 'buscar_modificar_jugador' add_shortcode('buscar_modificar_jugador', 'buscar_modificar_jugador'); ?> AND this Is the code that i have to add a new register maybe the problem Is the name of something. add_action('init', 'procesar_solicitud_registro'); function procesar_solicitud_registro() { if (isset($_POST['nombre']) && isset($_POST['apellido']) && isset($_POST['dni']) && isset($_POST['fecha_nacimiento']) && isset($_POST['direccion']) && isset($_POST['telefono']) && isset($_POST['categoria']) && isset($_POST['fecha_alta'])) { // Obtener los datos del formulario $nombre = sanitize_text_field($_POST['nombre']); $apellido = sanitize_text_field($_POST['apellido']); $dni = sanitize_text_field($_POST['dni']); $fecha_nacimiento = sanitize_text_field($_POST['fecha_nacimiento']); $direccion = sanitize_text_field($_POST['direccion']); $telefono = sanitize_text_field($_POST['telefono']); $categoria = sanitize_text_field($_POST['categoria']); $fecha_alta = sanitize_text_field($_POST['fecha_alta']); // Insertar en la base de datos (crear la tabla si no existe) global $wpdb; $tabla = $wpdb->prefix . 'nuevo_jugador'; // Verificar si el DNI ya existe en la base de datos $existing_player = $wpdb->get_row($wpdb->prepare("SELECT * FROM $tabla WHERE dni = %s", $dni)); if ($existing_player) { echo '<script>'; echo 'alert("Ya existe un jugador con el DNI ingresado");'; echo 'window.location.href="?";'; // Redirigir a la misma página después de la eliminación echo '</script>'; exit(); // Detener la ejecución del resto del código después de la redirección } // Crear la tabla si no existe $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE IF NOT EXISTS $tabla ( id mediumint(9) NOT NULL AUTO_INCREMENT, nombre varchar(50) NOT NULL, apellido varchar(50) NOT NULL, dni varchar(20) NOT NULL UNIQUE, fecha_nacimiento date NOT NULL, direccion varchar(255) NOT NULL, telefono varchar(20) NOT NULL, categoria varchar(20) NOT NULL, fecha_alta date NOT NULL, PRIMARY KEY (id) ) $charset_collate;"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); // Insertar datos en la tabla $wpdb->insert( $tabla, array( 'nombre' => $nombre, 'apellido' => $apellido, 'dni' => $dni, 'fecha_nacimiento' => $fecha_nacimiento, 'direccion' => $direccion, 'telefono' => $telefono, 'categoria' => $categoria, 'fecha_alta' => $fecha_alta, ) ); echo '<script>'; echo 'alert("Jugador agregado correctamente");'; echo 'window.location.href="?";'; // Redirigir a la misma página después de la eliminación echo '</script>'; exit(); // Detener la ejecución del resto del código después de la redirección // Redirigir a la misma página con los campos del formulario vacíos //wp_redirect(remove_query_arg(array('nombre', 'apellido', 'dni', 'fecha_nacimiento', 'direccion', 'telefono', 'categoria', 'fecha_alta'))); //exit(); } } // Shortcode para agregar nuevo jugador/a function agregar_nuevo_jugador() { ob_start(); // Inicia el buffer de salida ?> <div style="text-align: center; margin-top: 20px;"> <h2 style="margin-bottom: 10px; font-size: 18px;">Agregar Nuevo Jugador/a</h2> <form method="post" action="" style="max-width: 400px; margin: 0 auto;"> <table style="width: 100%;"> <tr> <td style="text-align: right;"><label for="nombre">Nombre:</label></td> <td><input type="text" name="nombre" value="<?php echo isset($_POST['nombre']) ? sanitize_text_field($_POST['nombre']) : ''; ?>" required></td> </tr> <tr> <td style="text-align: right;"><label for="apellido">Apellido:</label></td> <td><input type="text" name="apellido" value="<?php echo isset($_POST['apellido']) ? sanitize_text_field($_POST['apellido']) : ''; ?>" required></td> </tr> <tr> <td style="text-align: right;"><label for="dni">DNI:</label></td> <td><input type="text" name="dni" value="<?php echo isset($_POST['dni']) ? sanitize_text_field($_POST['dni']) : ''; ?>" required></td> </tr> <tr> <td style="text-align: right;"><label for="fecha_nacimiento">Fecha de Nacimiento:</label></td> <td><input type="date" name="fecha_nacimiento" value="<?php echo date('Y-m-d'); ?>" required></td> </tr> <tr> <td style="text-align: right;"><label for="direccion">Dirección:</label></td> <td><input type="text" name="direccion" value="<?php echo isset($_POST['direccion']) ? sanitize_text_field($_POST['direccion']) : ''; ?>" required></td> </tr> <tr> <td style="text-align: right;"><label for="telefono">Teléfono:</label></td> <td> <input type="text" name="telefono" id="telefono" value="<?php echo isset($_POST['telefono']) ? sanitize_text_field($_POST['telefono']) : ''; ?>" required> <br> <small style="color: red;">(No incluir el 0 ni el 15)</small> </td> </tr> <tr> <td style="text-align: right;"><label for="categoria">Categoría:</label></td> <td> <select name="categoria" required> <option value="Escuelita">Escuelita</option> <option value="Pre-Mini">Pre-Mini</option> <option value="Mini">Mini</option> <option value="U13">U13</option> <option value="U15">U15</option> <option value="U17">U17</option> <option value="Femenino">Femenino</option> <option value="Primera">Primera</option> <option value="Veteranos">Veteranos</option> </select> </td> </tr> <tr> <td style="text-align: right;"><label for="fecha_alta">Fecha de Alta:</label></td> <td><input type="date" name="fecha_alta" value="<?php echo date('Y-m-d'); ?>" required></td> </tr> </table> <div style="margin-top: 15px;margin-bottom: 30px; text-align: center;"> <input type="submit" value="Registrar" style="margin-right: 10px;"> <input type="reset" value="Limpiar"> </div> </form> </div> <?php return ob_get_clean(); // Devuelve el contenido del buffer de salida } // Registrar el shortcode 'formulario_nuevo_jugador' add_shortcode('formulario_nuevo_jugador', 'agregar_nuevo_jugador'); The problem is that it doesn't let me edit it but every time I modify some data it inserts a new record.
TurboCommerce make the better internet purchasing globaly

Turbo Multi-language Translator

Make the better internet purchasing globaly

Turbosify SEO Speed Booster

5.0 (7) Free plan available
Get better conversions by improving store loading speed Installed

Turbo Multi-language Chat - AI Customer service in one hand

TurboCommerce make the better internet purchasing globaly
Our products

The help you need, when you need it

App by Turbo Engine

3 apps • 5.0 average rating

Turbosify Speed Booster

5.0 (7)
Get better conversions by optimizing shopify store Google page speed Installed

Turbosify Translator for Wordpress Woocommerce

5.0 (74) Free Wordpress Woocommerce Plugin
Translate your wordpress website to multiple language within 1 click, no configuration needed, no No technical required

Grow your business here

Whether you want to sell products down the street or around the world, we have all the tools you need.