Foros del Web » Programando para Internet » PHP »

insertar varios registros con check box

Estas en el tema de insertar varios registros con check box en el foro de PHP en Foros del Web. hola chicos: Tengo un formulario donde por medio de una serie de radio button selecciono un departamento y al seleccionarlo me aparece una tabla donde ...
  #1 (permalink)  
Antiguo 25/05/2009, 19:32
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Pregunta insertar varios registros con check box

hola chicos:
Tengo un formulario donde por medio de una serie de radio button selecciono un departamento y al seleccionarlo me aparece una tabla donde puedo colocar los problemas y posibles soluciones que el usuario encontro en el departamento seleccionado, en esa tabla si escribe 5 problemas unicamente podra seleccionar 2 con un check box y son los que se almacenarán en la base de datos los demas los necesito para otros fines pero tambien sirven.

Pero bueno mi problema radica presisamente en que al seleccionar los dos check box e intentar insertar en la base de datos unicamente me inserta 1 y el otro no el codigo que tengo es el siguiente:

este es para checar en la bd que existan problemas con el area que el usuario selecciono

Código PHP:
<?php
$vacia 
1;
if (isset(
$_POST['actualizar'])){
  if (isset(
$_POST['radio_value'])) {
    
$valor $_POST['radio_value'];
    
     
//Haces la consulta a la base de datos.
        
$query 'SELECT id_problema, importancia, area, problema WHERE area = \''.$_POST['radio_value'].'\' and anio=\''.$_SESSION['anio']. ;
      
$resultquery   mysql_query($query) or die(mysql_error());
      
$num           mysql_num_rows($resultquery); //Cantidad de filas retornadas.
      
     
    
if ($num == 0) {
      echo  
$mensaje   "No tienes problemas con ".$valor
            
$vacia         1;
       }
       else { 
        echo 
"<HTML><TABLE Border=10 CellPadding=5 ><TR>";

# construyendo los encabezados de la tabla

echo "<th colspan=\"8\" scope=\"col\">Selecciona unicamente los dos problemas mas importantes de cada area</th></tr>
      <th bgcolor=#9966FF>IMPORTANCIA</th>
      <th bgcolor=#9966FF>AREA</th>
      <th bgcolor=#9966FF>PROBLEMAS</th>
      <th bgcolor=#9966FF>ACCION</th>
      </TR>"
;

// ciclo de lectura del rowset($tabla1)
$i=0;
while(
$num mysql_fetch_array($resultquery))
{

// desplegando en celda de tabla html

echo"<tr>";

echo 
"<input type=\"hidden\" name=\"id[]\" value=\"$num[0]\" />";

echo 
"<td><input type=\"checkbox\" name=\"importancia[]\" value=\"$i\" /></br></td>";

echo 
"<td><input type=\"text\" name=\"area[]\" value=\"$num[2]\" /></br></td>";

echo 
"<td><textarea name=\"problema[]\" cols=\"21\" rows=\"3\">$num[3]</textarea></br></td>";

echo 
"<td><textarea name=\"accion[]\" cols=\"21\" rows=\"3\">$num[4]</textarea></br></td>"

echo
"</tr>";
$i++;
};    
    
       }
   }
 }

Aqui inserto en la bd

Código PHP:
if(isset($_POST['guardar'])){
{
for(
$i=0;$i<count($_POST['importancia']);$i++){
if (!empty(
$_POST['importancia'][$i])) { 
$query="UPDATE problematica SET importancia='".$_POST['importancia'][$i]."', area='".$_POST['area'][$i]."', problema='".$_POST['problema'][$i]."' where anio='$anio' and id_problematica='".$_POST['id'][$i]."'";

mysql_query($query) or die(mysql_error());
echo 
"<p>Los problemas del año"$anio" han sido registradas de manera satisfactoria.<br />";


}else{                  echo 
"fallo al modificar" or die (mysql_error());           

}}
}
?> 
Que estoy haciendo mal o que me falta. Por fvor Ayuda!!!!!
  #2 (permalink)  
Antiguo 25/05/2009, 20:14
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: insertar varios registros con check box

Cita:
<count($_POST['importancia']
supongo q es por q no estas contando lo q esta en el array
por q no usas un for each para tomar el checkbox
?
saludines!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #3 (permalink)  
Antiguo 25/05/2009, 20:22
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: insertar varios registros con check box

mmmm me podrias dar una idea de como hacerlo por fa... perdon pero he estado investiando y la verdad no le entiendo muy bien al forech y no se como aplicarlo, de antemano gracias y perdon pero no tengo mucha experiencia en esto de programar
  #4 (permalink)  
Antiguo 25/05/2009, 23:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: insertar varios registros con check box

Es sencillo usar el foreach usalo de esta forma


Código PHP:
foreach($_REQUEST as $Key => $Value){
    $
$Key $Value;
}

//no tienes que escribir $_POST["importancia"] sino solamente $importancia esto 
//lo resuelve el foreach que esta arriba que convierte todos los campos como en 
//variables, asi puedes llamar todos los campos sin necesidad de escribir $_POST
for($i 0$i<count($importancia); $i++){
    echo 
$importancia[$i]."<br />";

  #5 (permalink)  
Antiguo 26/05/2009, 07:33
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: insertar varios registros con check box

otro ejemplito
Cita:
foreach($_REQUEST['idborrarnotaria'] as $reg)//idborrarnoticia es el nombre del checkbox
mysql_query("delete from abogados.notaria13_30 where id_abogado =$reg")or trigger_error(mysql_error(),E_USER_ERROR);//aki pues solo cambias tu consulta por el update saludines!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:49.