PHP - Pasar array desde php a sql

 
Vista:
Imágen de perfil de Alex
Val: 105
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Pasar array desde php a sql

Publicado por Alex (53 intervenciones) el 02/10/2019 01:13:11
Buenas, estoy con una pagina y necesito, que un array de 5 elementos sea actualizado en una base de datos sql. Es decir:
1
2
3
4
5
6
7
8
9
$user = $_SESSION['nombre'];
$numeros = array(6,15,21,18,9);
$id = 36489;
 
for($i=0;$i<count($numeros);$i++){
     $statement = $conexion->query("UPDATE Plantillas
     SET usuario = $user, estado = 2 
     WHERE plantilla = $numeros[$i] and id = $id");
}

Haciendo ese codigo no me lo toma, ya que la base de datos no se actualiza, supongo que el problema es el array.
Desde ya, muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Pasar array desde php a sql

Publicado por Alejandro (839 intervenciones) el 02/10/2019 15:54:43
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Si la variable $user es cadena le faltan las comillas
1
2
3
4
5
$statement = $conexion->query(
   "UPDATE Plantillas
   SET usuario = '$user', estado = 2 
   WHERE plantilla = $numeros[$i] and id = $id"
);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alex
Val: 105
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Pasar array desde php a sql

Publicado por Alex (53 intervenciones) el 03/10/2019 01:56:15
Era eso, muchas gracias.
Ahora tengo otro inconveniente, al selesscionar los numeros del 1 al 20 solo se aplica para el 6, o menores de 10, es decir el 3 tambien 5, etc. y si pongo por el ejemplo el 10 solo no lo toma. Y tambien solo toma el primero del array, si en el array esta el (3, 6) solo toma le 3
vuelvo a dejar el codigo.
1
2
3
4
5
6
7
8
9
$user = $_SESSION['nombre'];
$numeros = array(6,15,21,18,9);
$id = 36489;
 
for($i=0;$i<count($numeros);$i++){
     $statement = $conexion->query("UPDATE Plantillas
     SET usuario = '$user', estado = 2 
     WHERE plantilla = $numeros[$i] and id = $id");
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Pasar array desde php a sql

Publicado por Alejandro (839 intervenciones) el 03/10/2019 15:42:23
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
No entendí lo que intentas explicar. ¿puedes ser mas claro?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alex
Val: 105
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Pasar array desde php a sql

Publicado por Alex (53 intervenciones) el 03/10/2019 16:21:01
Buenas. Puede ser que no me haya logrado expresar correctamente.
Yo necesito que al seleccionar ciertos números, se actualice una base de datos vinculada a estos. El problema es que si yo selecciono más de un número solo actualiza el primero seleccionado y únicamente si este es menor que diez.
Ejemplo:
1
2
3
4
5
6
$numeros = array(4, 7, 11);
Solo agarra el 4.
$numeros = array(6, 3, 1);
Solo agarra el 6.
$numeros = array(13, 18, 19);
No agarra ninguno
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Pasar array desde php a sql

Publicado por Alejandro (839 intervenciones) el 03/10/2019 16:39:36
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
El código esta bien, quizá es porque no se cumple la condición.
Puedes ver que se construyen los querys.
1
2
3
4
5
6
7
8
9
10
11
$user = $_SESSION['nombre'];
$numeros = array(6,15,21,18,9);
$id = 36489;
 
foreach($numeros as $plantilla){
	$query = "UPDATE Plantillas
	SET usuario = '$user', estado = 2 
	WHERE plantilla = $plantilla and id = $id";
	echo $query.'<br />';
	//$statement = $conexion->query($query);
}

Tambien puedes hacerlo así:
1
2
3
4
5
6
7
8
$user = $_SESSION['nombre'];
$numeros = array(6,15,21,18,9);
$id = 36489;
 
$query = "UPDATE Plantillas
SET usuario = '$user', estado = 2 
WHERE plantilla IN (".implode(', ',$numeros).") and id = $id";
$statement = $conexion->query($query);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de alex
Val: 105
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Pasar array desde php a sql

Publicado por alex (53 intervenciones) el 03/10/2019 23:02:13
Buenas tardes, me funciono tu primer codigo solo si ingreso yo mismo los numeros al array. Muchas gracias. pero tengo otro inconveniente.
Necesito que los numeros que aparecen en el array.
1
$numeros = array(6,15,21,18,9);
Provengan de una variable enviada por post.
1
$_SESSION['numeros'] = $_POST['numerosElegidos'];
Ya probe igualando la variable $numeros a la variable $_SESSION['numeros']; pero no funciona, directamente no los toma
Y tambien probé
1
$numeros= array($_SESSION['numeros']);
Me gustaria saber cual es la solucion.
Muchas gracias.
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 Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Pasar array desde php a sql

Publicado por Alejandro (839 intervenciones) el 04/10/2019 15:55:26
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Es necesario saber como construyes "numerosElegidos"
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 alex
Val: 105
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Pasar array desde php a sql

Publicado por alex (53 intervenciones) el 04/10/2019 16:26:04
La variable númerosElegidos se obtiene mediante un post. Este viene de un inpute donde se almacenan los números y al dar click en submit se envían.
Lo curioso es que al dar un
1
echo $numeros
donde
1
$numeros = $_SESSION['numeros'];
muestra tal cual los numeros elegidos.
pero si pongo
1
2
$numeros = array($_SESSION['numeros']);
echo $numeros;
Salta un error d "Array to string conversion"
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 Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Pasar array desde php a sql

Publicado por Alejandro (839 intervenciones) el 04/10/2019 16:51:40
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Si es un solo input recibes una cadena de caracteres, no un arary
1
$numeros = explode(',',$_POST['numeros']);
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 alex
Val: 105
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Pasar array desde php a sql

Publicado por alex (53 intervenciones) el 05/10/2019 19:54:58
Funcionó, muchisimas gracias por la ayuda. Un saludo.
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