Comunidad de diseño web y desarrollo en internet online

Pasar varios id por checkbox y en otra página mostrar resultado mysql

Citar            
MensajeEscrito el 19 Dic 2016 02:50 am
Hola, buenas.
Tengo un problema con el manejo de un array de checkbox.
Como código tengo:
Conecto bd
<?php
/*conecto a base de datos*/
/*después*/

//Selecciono todos los datos de la tabla datos personales
$qtot = "SELECT * FROM datos_personales ";
$tpag = mysql_query($qtot, $cof) or die(mysql_error());
$row_tpag = mysql_fetch_assoc($tpag);
$totalRows_tpag = mysql_num_rows($tpag);
//Muestro datos:
do{
<div class="col-md-1"><label name="id_persona" ><?php echo($row_Recordset1['id_persona']);?></label> </div>
<div class="col-md-1"><?php echo ($row_Recordset1['nombre']);?></div>
<div class="col-md-1"><?php echo ($row_Recordset1['apellidos']);?></div>
<div class="col-md-1"><?php echo($row_Recordset1['dni']);?></div>
<!-- inicia formulario de envio del check -->
<form id="checkenvia" name="checkenvia" action="imprimecheck.php" method="post">
<input type="checkbox" id="idselec" value="<?php echo($row_Recordset1['id_persona']);?>" name="idselec[]" multiple="multiple"/>
</form>
<!-- finalizo el formulario del envio del check -->
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
// acaba el do{
// Esto de arriba es un resumen del código, toda esta parte en teroría envía los id seleccionados por checkbox.


/*
Ahora tengo otro archivo "imprimecheck.php" donde debo recibir los id de las personas seleccionadas, imaginemos que seleccionamos 34 personas, todos los "id_personas" en teoría se han enviado con idselec[]
*/
/* la pregunta es:
¿¿Como hago para mostrar en una sentencia sql todas las perosnas con ese id??


Yo tengo este código pero no va:
*/

$idpersona = explode(",", $_POST['idselec']);

$sql = "SELECT * FROM datos_personales WHERE id_persona = '$idpersona' ";

while($resultado = mysql_fetch_array($sql)){
echo ($resultado['id_persona']);
echo ($resultado['nombre']);
}

?>
Error:

Warning: explode() expects parameter 2 to be string, array given in ...imprimecheck.php on line 7
$idpersona = explode(",", $_POST['idselec']);

Warning: mysql_fetch_array() expects parameter 1 to be resource, ....imprimecheck.php on line 11
while($resultado = mysql_fetch_array($sql)){


Gracias, esto me lleva mucho tiempo y necesito una solución explicando paso a paso para poder entenderlo.

Por santiagobg

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Dic 2016 10:23 pm
Piensa en algo, en el ciclo estás creando un form para cada check.
Y también el id de los checks son repetidos.

Sólo quieres mostrar el nombre de las personas elegidas? Hazlo con js, guarda el nombre como atributo en el check.

Si quieres guardar la lista en algún lado entonces si necesitas php

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 21 Dic 2016 11:16 pm

nasho escribió:

Piensa en algo, en el ciclo estás creando un form para cada check.
Y también el id de los checks son repetidos.

Sólo quieres mostrar el nombre de las personas elegidas? Hazlo con js, guarda el nombre como atributo en el check.

Si quieres guardar la lista en algún lado entonces si necesitas php





Hola, he creado un id para cada checkbox dinámicamente en el código que voy actualizando, el id de la persona lo necesito porque en la otra página, cuando envíe el checkbox, tengo que hacer una consulta a una base de datos y extraer todas las personas elegidas en el checkbox, nombre, id, hermandad, etc....

La idea de lo que quiero hacer, es:
del listado extraido de una base de datos, poder elegir a cuantas personas quiera con el chekbox que tengo, luego mandarlas a otra página (id de cada persona) y con esos id, extraer otros datos de un par de tablas más con otra consulta a la base de datos.
Si me dijeras la forma correcta de hacer eso, la otra parte la investigo, pero necesito mandar por checkbox los id de cuantas personas elija.
¿La pregunta es entonces tengo que abrir el 'form' antes del 'do{ y cerrar el form depués del }while....?
Gracias, de antemano

Gracias por responder.

Por santiagobg

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Dic 2016 11:21 pm
Se correcto, abres antes de do, luego imprimes todos los check y después de while cierras el form con su botón de enviar.

Al principio de imprimecheck.php imprime tu variable

Código :

print_r($_POST['idselec']);
exit;

para saber cómo se envío la info.

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 22 Dic 2016 12:11 am
Ok, lo pruebo y te digo, muchas gracias!!

Por santiagobg

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Dic 2016 02:26 am

nasho escribió:

Se correcto, abres antes de do, luego imprimes todos los check y después de while cierras el form con su botón de enviar.

Al principio de imprimecheck.php imprime tu variable

Código :

print_r($_POST['idselec']);
exit;

para saber cómo se envío la info.


Funcionó!
Gracias, que fallo lo del form.... :oops:

Por santiagobg

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Dic 2016 04:24 pm
Me alegra Santiago, saludos

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.