PHP - Notice: Array to string conversion in

 
Vista:
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Notice: Array to string conversion in

Publicado por Robokick (156 intervenciones) el 30/04/2021 19:07:05
HOLA CON TODOS, ESTOY HACIENDO UN FORMULARIO PARA REGISTRAR ALUMNOS, ENTRE LOS CAMPOS HAY UNO QUE SE LLAMA DEPORTE Y EN ESE CAMPO DEBE DE APARECER 1 O MAS DEPORTES QUE PRACTICA EL ALUMNO AHI HE CREADO 5 CHECKBOX DE TIPO ARRAY ADJUNTO CODIGO

1
2
3
4
5
6
7
8
9
<label>Deporte que practica</label><br>
<input type="checkbox" name="check[]" value="futbol">Fútbol
<input type="checkbox" name="check[]" value="basquet">Básquet
<br>
<input type="checkbox" name="check[]" value="voley">Vóley
<input type="checkbox" name="check[]" value="funcional">Funcional
<br>
<input type="checkbox" name="check[]" value="karate">Karate
<input type="checkbox" name="check[]" value="cross">Crossfit


AHORA ADJUNTO EL CODIGO DE PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$conexion=mysqli_connect("localhost","root","","bko")or die("error");
 
	if(isset($_REQUEST['check']))
	{
mysqli_query($conexion,"insert into alumnos
(alum_nom,alum_fono,alum_gen,alum_dir,alum_dis,alum_deporte)
values('$_REQUEST[nombre]','$_REQUEST[fono]','$_REQUEST[radio1]',
'$_REQUEST[direc]','$_REQUEST[city]','$_REQUEST[check])'")
or die("error".mysqli_error($conexion));
 
	echo "Se procedió con el registro";
	}
	else
		echo "Falta marcar";
 
mysqli_close

EL MENSAJE QUE OBTENGO ES ESTE
( ! ) Notice: Array to string conversion in C:\wamp\www\web\proyectos\bko\alumnos\grabalum.php on line 15

ANTERIORMENTE HE PODIDO RELAIZAR REGISTRO DE ALUMNOS PERO ES PRIMERA VEZ QUE USO ARRAY PARA REGISTRAR ESE CAMPO DEPORTE LO DEFINI COMO VARCHAR

ESPERO ME PUEDAN AYUDAR CON ESTO
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
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Registrar un array

Publicado por joel (1269 intervenciones) el 30/04/2021 20:03:46
Hola Robotick, cual es para ti la linea 15?
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
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Registrar un array

Publicado por Robokick (156 intervenciones) el 30/04/2021 20:32:41
Hola joel
Si disculpa la linea 15 corresponde donde figura el $_REQUEST[check]
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
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Registrar un array

Publicado por joel (1269 intervenciones) el 01/05/2021 09:07:21
Ha, perfecto...

El error te esta diciendo, de que $_REQUEST[check] es un array, y no lo puede convertir a string. De donde viene esa variable?


NOTA; Ten cuidado, tienes un cierre de parentesis donde no toca: '$_REQUEST[check])' fijate que lo tienes dentro de la comilla
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
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Registrar un array

Publicado por Robokick (156 intervenciones) el 01/05/2021 16:20:11
Hola joel
Si no me di cuenta de la comilla ahora lo modifico y si el check es un array en la BD está creado el campo deporte de tipo string porque quiero que en ese campo se registre todos los deportes que practica el alumno
No se puede guardar lo que yo marque en Cada checkbox al campo deportes????
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
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Registrar un array

Publicado por joel (1269 intervenciones) el 02/05/2021 09:18:01
No puedes guardar un objeto array en un campo string... no se muy bien que estas haciendo, pero puedes pasarlo a string con implode()... algo así:

1
2
3
4
mysqli_query($conexion,"insert into alumnos
(alum_nom,alum_fono,alum_gen,alum_dir,alum_dis,alum_deporte)
values('$_REQUEST[nombre]','$_REQUEST[fono]','$_REQUEST[radio1]',
'$_REQUEST[direc]','$_REQUEST[city]','".implode(",", $_REQUEST[check])."')")

y tendrás en tu campo de la base de datos, todos los valores del array separados por coma. Es esto lo que quieres conseguir?
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
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Registrar un array

Publicado por Robokick (156 intervenciones) el 02/05/2021 18:24:05
HOLA JOEL,
SI ESO E SLO QUE BUSCO YA GUARDO EN EL CAMPO DEPORTE LOS DEPORTES QUE SELECCIONO EN EL CHECKBOX
PERO ME ARROJA TAMBIEN UN MENSAJE

( ! ) Notice: Use of undefined constant check - assumed 'check' in C:\wamp\www\web\proyectos\bko\alumnos\grabalum.php on line 14

LA LINEA 14 CORRESPONDE A:
1
'$_REQUEST[direc]','$_REQUEST[city]','".implode(' , ',$_REQUEST[check])."')")


1
2
3
4
5
mysqli_query($conexion,"insert into alumnos
(alum_nom,alum_fono,alum_gen,alum_dir,alum_dis,alum_deporte)
values('$_REQUEST[nombre]','$_REQUEST[fono]','$_REQUEST[radio1]',
'$_REQUEST[direc]','$_REQUEST[city]','".implode(' , ',$_REQUEST[check])."')")
or die("error".mysqli_error($conexion));
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
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Registrar un array

Publicado por joel (1269 intervenciones) el 03/05/2021 08:09:19
Hola Robokick, perdona, te lo puse mal, el check tiene que ir entre comillas... así:
1
2
3
4
mysqli_query($conexion,"insert into alumnos
(alum_nom,alum_fono,alum_gen,alum_dir,alum_dis,alum_deporte)
values('$_REQUEST[nombre]','$_REQUEST[fono]','$_REQUEST[radio1]',
'$_REQUEST[direc]','$_REQUEST[city]','".implode(",", $_REQUEST["check"])."')")
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
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Registrar un array

Publicado por Robokick (156 intervenciones) el 03/05/2021 17:48:29
Gracias Joel al poner las comillas ya no arroja ese mensaje y graba limpiamente.
Yo ya había visto un poco del implode pero no había visto eso de poner ua comilla seguido de un punto
". Implode
puedes explicarme que es lo que eso hace por favor
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
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Registrar un array

Publicado por joel (1269 intervenciones) el 03/05/2021 19:10:02
Si, claro... el punto lo que hace es concatenar... es decir juntar dos cadenas

1
$x="a"."b";
$x vale "ab"
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