PHP - utilizar campo para checkbox

 
Vista:

utilizar campo para checkbox

Publicado por Zoraida (5 intervenciones) el 08/06/2007 11:49:07
Hola a todos,

soy nueva en esto del php y queria haceros una consulta. Tengo una tabla con el campo Instrumentales donde tengo almacenado lo siguiente: Capacidad de análisis y síntesis,Capacidad de organización y planificación,Comunicación oral y escrita.

Lo que quiero hacer es obtener esos valores mediante una consulta e imprimirlo como checkbox. El código que he implementado es el siguiente:

<?php

$con=mysql_connect(HOST,USUARIO,PASSWORD);
mysql_select_db(BDAUXILIAR);
$row1 = mysql_query("SELECT Instrumentales FROM tabla_competencias_transversales");
$res_instrumentales = mysql_fetch_array($row1);
$instrumentales = explode(',',$res_instrumentales);

for($j=0;$j<count($instrumentales);$j++)
{
echo '<input type="checkbox" name="'.$j.'" value="'.$j.'">'.$instrumentales[$j].'';

}

?>

Si le agrego echo $instrumentales[0]; , se me imprime Array.
Si le agrego $valor = count($instrumentales); echo $valor; , se me imprime 1.

El resto del codigo me da error.

¿Qúe hago mal? Espero recibir ayuda. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:utilizar campo para checkbox

Publicado por Jaterli (48 intervenciones) el 08/06/2007 13:00:48
$instrumentales es un array bidimensional de x filas (num registros) y 1 columna (instrumentales), es decir:

$instrumentales[0][0] = 'valor';
$instrumentales[1][0] = 'valor';
$instrumentales[2][0] = 'valor';
....

Prueba de la siguiente forma y me cuentas que tal:

while ($instrumentales = @mysql_fetch_array($row1))
echo '<input type="checkbox" name="'.$j.'" value="'.$j.'">'.$instrumentales[0].'';
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

1 pekeña corrección

Publicado por Jaterli (48 intervenciones) el 08/06/2007 13:03:33
Inicia un contador $j y sumas 1 cada vez que recorras el bucle para asignar el nombre y valor al checkbox:

$j = 0;
while ($instrumentales = @mysql_fetch_array($row1))
{
echo '<input type="checkbox" name="'.$j.'" value="'.$j.'">'.$instrumentales[0].'';
$j++;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:1 pekeña corrección

Publicado por Zoraida (5 intervenciones) el 08/06/2007 16:46:53
He hecho lo que me has dicho y nada.

Necesito separar el contenido del campo Instrumentales cada vez que aparezca una coma y almacenarlo en un array. Para ello utilizo la funcion explode. Pero hay algo que falla. ¿Tiene algo que ver el tipo de campo que es Instrumentales? Es decir, si es tipo text, char, etc. Yo lo tengo definido como text.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:utilizar campo para checkbox

Publicado por Gonzalo (84 intervenciones) el 08/06/2007 17:02:39
Una cosa que haces mal es no ponernos aquí el error que te da ;)

Pon el texto del error que sale, por favor, que eso siempre ayuda mucho.


Por lo demás, el problema probablemente está en esta linea:
$instrumentales = explode(',',$res_instrumentales);

La función mysql_fetch_array devuelve un array. Y el segundo parámetro de explode debe ser una cadena nada más. Seguramente lo que quieres hacer sea:

$res_instrumentales = mysql_fetch_array($row1, MYSQL_NUM);
$instrumentales = explode(',',$res_instrumentales[0]);

Consulta el manual de php:
http://es.php.net/mysql_fetch_array
y
http://es2.php.net/explode
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:utilizar campo para checkbox

Publicado por Zoraida (5 intervenciones) el 10/06/2007 17:53:54
Muchísimas gracias.

Acabo de probarlo y ahora sí el código me funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar