PHP - Insertar varios registros a la vez en mi base de datos con PHP

 
Vista:
sin imagen de perfil

Insertar varios registros a la vez en mi base de datos con PHP

Publicado por Gabriel (3 intervenciones) el 19/09/2015 16:39:56
Hola amigos de FORO!.

Tengo el siguiente problema, quiero que mi sistema busque en mi base de datos registros segun un filtro, a esos registros que encuentre que me los inserte en otra tabla de mi base de datos, el problema que tengo que al insertar solo me inserta la primer letra de lo que encontro en la busqueda!. No se donde me estoy equivocando!
Les dejo mi codigo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$sql = mysqli_query($con,"SELECT * FROM amarillas");
$acumulacion_amarillas = 0;
$limite_amarillas = 3;
while($r = mysqli_fetch_array($sql))
{
	$usuario = $r[usuario];
	$cant_amarillas[$usuario] = $r[cant_amarillas];
	if($cant_amarillas[$usuario] >= $limite_amarillas)
	{
		$acumulacion_amarillas = 1;
	}
}
if($acumulacion_amarillas == 1)
{
	$sql = "SELECT * FROM amarillas WHERE cant_amarillas >= 3";
	$res = mysqli_query($con,$sql);
	while($r = mysqli_fetch_array($res))
	{
		$usuario = $r[usuario];
		$club = $r[club];
		$torn = $r[torneo];
		$jorn = $r[jornada];
		$sem = $r[semestre];
		$cantidad = mysqli_num_rows($res);
		$valores=array();
		for($i = 0; $i <= sizeof($cantidad); ++$i)
		{
			$cant_partidos = 1;
			$sancion = "Acumulacion de 3 amarillas";
			$valores[] = sprintf('(\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', \'%s\', \'%s\')',  $usuario[$i], $club[$i], $cant_partidos, $sancion, $torn[$i], $jorn[$i], $sem[$i]);
			$i++;
		}
		$sql = sprintf("INSERT INTO sanciones (usuario, club, cant_partidos, sancion, torneo, jornada, semestre) VALUES %s", implode(',', $valores));
	}
}

Pero esto es lo que me inserta!

INSERT INTO sanciones (usuario, club, cant_partidos, sancion, torneo, jornada, semestre) VALUES ('L', 'C', '1', 'Acumulacion de 3 amarillas', 'L', '2', '1')
INSERT INTO sanciones (usuario, club, cant_partidos, sancion, torneo, jornada, semestre) VALUES ('D', 'C', '1', 'Acumulacion de 3 amarillas', 'L', '2', '1')


Bueno espero que me puedan ayudar, un saludo para todos y 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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insertar varios registros a la vez en mi base de datos con PHP

Publicado por xve (6935 intervenciones) el 19/09/2015 20:26:33
Hola Gabriel, creo que lo puedes simplificar un poco mas...

Haber que te parece así, todo en una sola instrucción de MySQL:
1
2
3
4
5
INSERT INTO sanciones
(usuario, club, cant_partidos, sancion, torneo, jornada, semestre)
SELECT usuarios,club,1,"Acumulacion de 3 amarillas",torneo,jornada,semestre
    FROM amarillas
    WHERE cant_amarillas >= 3

Coméntanos si te sirve, ok?
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

Insertar varios registros a la vez en mi base de datos con PHP

Publicado por Gabriel (3 intervenciones) el 19/09/2015 20:55:43
xve perfecto!!!!
Yo complicandome tanto y la solucion estaba en el mismo MySQL!!!

Muchas gracias por tu aporte!!
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