Ayuda urgente en php y mysql

Hola necesito ayuda te explico en que la necesito ... Tengo que registrar a varios socios de una empresa, tengo una base de datos, y una sola tabla en la que en ella tengo los siguientes campos... " id, nombre, apellido_paterno, apellido_materno, fecha_alta, año_baja, estatus" esos son mi campos en los que son los campos de fecha de baja no tiene nada, y en los que son de estatus es "si" . Espero y me este explicando. Ok muestro mis datos que tengo en mi base de datos de la siguiente manera :

<html>
<head>
</head>
<body>
<?php
include("connecc.php");
$Enlace=CONECTARSE();
$variable3=mysql_query("select * from datps");
echo "<form action=\"procesar.php\" method=\"POST\">\n";
while ($row=mysql_fetch_array($variable3))
{
echo "<input type=\"checkbox\" name=\"seleccion[]\" value=\"".$row['id']."\">".$row['nombre'].$row['apellido_paterno'].$row['apellido_materno']."<br>";
}
echo "<input type=\"submit\" name=\"submit\" value=\"enviar\">";
print "</form>";
?>
</body>
</html>

APARECE UNA LISTA DE TODOS LOS QUE TENGO DENTRO DE MI BASE DE DATOS, cada uno con un checkbox, en lo que puedo seleccionar a varios socios de la lista, lo que tengo que hacer es darles de baja, osea a ki en la empresa se les da de baja cada año y luego se hace una lista de todos los que se han dado de baja anual, no tengo que eliminarlos por completo de la tabla, lo que se me ocurrió para no eliminarlos es cambiarles el estatus "si" al "no" solo a los que he seleccionado Y agregarle al mismo tiempo agregarle la fecha de en el que les estoy dando de baja osea el año en el que les he dado de baja, para si luego buscar a todos los socios en el que se le han dado de baja en el año por y ya me muestre a cuyos socios, la verdad no tengo idea de como hacerle podrías ayudame.?
Por favor si puedes decirme como hacerle no tengo la mínima idea de como empezar lo único que tengo es que ya me aparece la lista de todos los que están en mi base de datos, agradezco tu disposición ... Espero tu respuesta pronto..

1 Respuesta

Respuesta
1
Como sabrás con los checkbox se pueden seleccionar más de un valor. Evidentemente estamos hablando de un array. Es decir, imaginemos que tenemos el código que has mostrado. En 'selección[]' estamos guardando todos los valores. Es decir, que si seleccionamos las primeras dos casillas, tendremos un array de dos valores. Por ejemplo:
$seleccion = $_POST['seleccion']. Como es obvio, 'count($seleccion)' valdrá 2.
Pero nosotros no queremos esto. Nosotros queremos eliminar socios identificados por SUS ID'S. Luego tendremos que utilizar algo como así:
mysql_connect($bla, $ble, $bli)
mysql_select_db($blo)
for ($i=0; $i<count($seleccion); $i++) {
mysql_query("UPDATE datps SET estatus = 'no' WHERE id = $seleccion[$i]");
}
Con esto iremos recorriendo el array $seleccion del primer al ultimo elemento. Cada uno de los elementos, habrá guardado el VALUE del checkbox, es decir, el ID del socio. Por tanto, por cada elemento del array $seleccion, nos conectaremos a la base de datos. El funcionamiento es bien sencillo. Desde $i=0 hasta mientras $i < cantidad_valores_array actualizar el valor estatus a 'no', en la ID $seleccion[0], $seleccion[1], etc..
La idea y el código son muy sencillitos pero si necesitas alguna ayuda extra, no dudes en preguntar. Que para eso estamos ;)
Hola disculpa que te vuelva molestar muchas gracias por brindarme tu ayuda y pues a orientarme gracias gracias gracias pero el código no hace nada :( ni me manda error ni nada ni modifica los datos en mi tabla, ¿qué crees que pasa?
En procesar.php
$seleccion = $_POST['seleccion'];
mysql_connect($bla, $ble, $bli) or die("No se pudo conectar"); // obviamente $bla, $ble y $bli son variables con los valores del 'host', 'username' y 'password' respectivamente.
mysql_select_db($blo) or die("No se pudo seleccionar BD"); // $blo es el nombre de la BD
for ($i=0; $i<=count($seleccion)-1; $i++) {
mysql_query("UPDATE datps SET estatus = 'no' WHERE id = $seleccion[$i]") or die("Error al modificar datos");
}
Nota: he puesto datps. Podría ser 'datos' el nombre de la tabla :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas