Foros del Web » Programando para Internet » PHP »

Problema con array

Estas en el tema de Problema con array en el foro de PHP en Foros del Web. Hola amigos como estais, Vereis tengo la sieguiente cuestion, con el siguiente codigo estoy listando una seria de usuarios y ala vez estoy mirando las ...
  #1 (permalink)  
Antiguo 24/02/2011, 13:56
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 4
Problema con array

Hola amigos como estais,


Vereis tengo la sieguiente cuestion, con el siguiente codigo estoy listando una seria de usuarios y ala vez estoy mirando las cuotas que tiene cada uno, el codigo esta funcionando bien para esto, la cosa es que tengo un checkbox para cada cuota de cada usuario, entonces cada usuario puede ter por ejeplo 2 cuotas, entonces necesito que al enviar el formulario envia el Nusuario de ese usuario y el Ncuota de la cuota que marquemos o de las dos si las marcamos,

es te es el codigo:


$consulta = 'SELECT * from usuarios t1 WHERE t1.Nusuario NOT IN (SELECT t2.Nusuario FROM cuotas_usuarios t2 WHERE t2.Nusuario=t1.Nusuario) and t1.Ngrupo = '.$_SESSION["Ngrupo"];
$resultado = mysql_query($consulta,$conexion);

while ($array = mysql_fetch_array($resultado)){


echo '<tr>';


echo '<td class="row_h" bgcolor="'.$color.'"><a href="?Nusuario='.$array["Nusuario"].'&anio='.$array['fecha'].'" >';

if($array["Avatar"] == ""){

echo '<img class="avatar_cuotas" src="imagenes_usuario/avatar.png" width="30px" border="0">';

}else{

echo '<img class="avatar_cuotas" src="imagenes_usuario/'.$array["Avatar"].'" width="30px" border="0">';
}

echo '<font class="">'.$array["Nombre"].'&nbsp;'.$array["Apellidos"].'</font></a></td>';

echo '<td class="row_cargo" align="center" bgcolor="'.$color.'">'.$array["cargo"].'</td>';

echo '<td class="row_cuota" align="center" bgcolor="'.$color.'">';

echo '<input type="text" name="Nusuario[]" value="'.$array["Nusuario"].'" style="diplay:none;"/>';

$consulta_nombre_cuotas = 'SELECT DISTINCT * FROM cuotas WHERE Ngrupo = '.$_SESSION["Ngrupo"].' and fecha = "2011" ORDER BY nombre_cuota';
$resultado_nombre_cuotas = mysql_query($consulta_nombre_cuotas,$conexion);

while ($array_nombre_cuotas = mysql_fetch_array($resultado_nombre_cuotas)){

echo '<input type="checkbox" name="asignar_cuota[]" value="'.$array_nombre_cuotas['Ncuota'].'">'.$array_nombre_cuotas["nombre_cuota"].' '.$array_nombre_cuotas["cuota"].'€<br />';

}
}

Como veis tengo un array para el Nusuario y otro para las cuotas pero ahora mismo no esta funcionando bien, cuando los envio y los recojo hago lo siguiente:


if(isset($_POST['asignar_cuota'])){

foreach($_POST['asignar_cuota'] as $indice => $asignado){

$usuario = $_POST['Nusuario'][$indice];
echo $consulta = 'UPDATE cuotas_usuarios SET pago_en_camino = "", modo_de_pago = "", pagado = "", fecha_de_pago = "" WHERE Ncuota = "'.$asignado.'" AND Nusuario = "'.$usuario.'"<br />';
//$resultado = mysql_query($consulta,$conexion);

}

}

Pero esta enviando el Nusuario equivoado si no marcmos los dos cuotas de cada usuario, creo que estoy haciendo mal el proceso a ver si alguien sabe como podria trabajar con estos dos array.

Un saludo y gracias desde ya
  #2 (permalink)  
Antiguo 24/02/2011, 16:06
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Problema con array

Tendrías que poner una referencia en el checkbox para saber de que usuario es, por ejemplo:

Código PHP:
Ver original
  1. echo '<input type="checkbox" name="asignar_cuota[]" value="'.$array_nombre_cuotas['Ncuota']."_".$array["Nusuario"].'">'.$array_nombre_cuotas["nombre_cuota"].' '.$array_nombre_cuotas["cuota"].'€<br />';

y luego obtenés el número de cuota y el id de usuario, algo así:

Código PHP:
Ver original
  1. if(isset($_POST['asignar_cuota'])){
  2.  
  3. foreach($_POST['asignar_cuota'] as $indice => $asignado){
  4.  
  5. $data = explode('_', $asignado);
  6.  
  7. $asignado = $data[0];
  8.  
  9. $usuario = $data[1];
  10. echo $consulta = 'UPDATE cuotas_usuarios SET pago_en_camino = "", modo_de_pago = "", pagado = "", fecha_de_pago = "" WHERE Ncuota = "'.$asignado.'" AND Nusuario = "'.$usuario.'"<br />';
  11. //$resultado = mysql_query($consulta,$conexion);
  12.  
  13. }
  14.  
  15. Hay diferentes formas de hacerlo, pero te puede servir...
  16.  
  17. }
  #3 (permalink)  
Antiguo 24/02/2011, 16:32
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 4
Respuesta: Problema con array

Hola amigo, gracias por tu respuesta.

Si habia pensando en usar explode de ese modo, pero no se si es muy correcto ese metodo, no se si habria algun cambiando el sql o utilizando array anidados.

a ver si alguien da su opinion, de todos modos muchisimas gracias por tu respuesta amigo
  #4 (permalink)  
Antiguo 25/02/2011, 05:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 4
Respuesta: Problema con array

Me preguntaba si se podria hacer mediante un array asociativo, alguien sabe si seria posible esto?

Un saludo amigos y gracias desde ya
  #5 (permalink)  
Antiguo 25/02/2011, 07:15
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Problema con array

Hola, tiene razon Walter pero lo pondria a si:


Código PHP:
Ver original
  1. echo '<input type="checkbox" name="asignar_cuota_".$array["Nusuario"]."[]" value="'.$array_nombre_cuotas['Ncuota']." >'.$array_nombre_cuotas["nombre_cuota"].' '.$array_nombre_cuotas["cuota"].'€<br />';

la clave esta en el name y es que le agregar el id del usuario para de esa forma si saber a quien pertenece.
y estyo tambien cambialo:
Código PHP:
Ver original
  1. echo '<input type="hidden" name="Nusuario[]" value="'.$array["Nusuario"].'" />';

entonces cuando precesas la info:

Código PHP:
Ver original
  1. foreach($_REQUEST['Nusuario'] as $key => $value){
  2.     $array[$value] = $_REQUEST['asignar_cuota_'.$value] ;
  3. }

y asi tenes tu preciado array asociativo.
Donde en indice va a ser el id del usuario y su contenido son todos los checkbox de ese usuario.

que tool?

Etiquetas: Ninguno
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 00:05.