PHP - problema al insertar datos a mysql

 
Vista:

problema al insertar datos a mysql

Publicado por PabloJavier (1 intervención) el 13/04/2016 09:30:29
Quiero insertar datos a MySQL pero a partir de un while:

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
<?php
	session_start();
	include_once "php_conexion.php";
	$maxf=mysql_query("SELECT MAX(tipo) AS tipo FROM fases");
		if($rowm=mysql_fetch_array($maxf)){
		$tipo=$rowm['tipo'];
		}
	$fase=$_POST['ultf'];
	$fecha=$_POST['fecha'];
	$grupo=$_POST['grupo'];
	$local1=$_POST['local1'];
	$local2=$_POST['local2'];
	$local3=$_POST['local3'];
	$local4=$_POST['local4'];
	$local5=$_POST['local5'];
	$visita1=$_POST['visita1'];
	$visita2=$_POST['visita2'];
	$visita3=$_POST['visita3'];
	$visita4=$_POST['visita4'];
	$visita5=$_POST['visita5'];
	$estado=$_POST['estado'];
	$primero=1;
	$pxf=mysql_query("SELECT pxf FROM grupos WHERE nro='$grupo'");
		if($rxf=mysql_fetch_array($pxf)){
		$partidos=$rxf['pxf']+1;
		}
		while($primero < $partidos){
			mysql_query("INSERT INTO partidos (fase, fecha, nopar, grupo, tipo, local, goloc, visita, golvis, pl, pv, datep, hora, estado) VALUES ('$fase','$fecha','$primero','$grupo','$tipo','$local',NULL,'$visita',NULL,NULL,NULL,NULL,NULL,'$estado')");
			$primero++;
		}
?>

Lo que quiero es que la variable $local y la variable $visita, se incremente con la condición, o sea, que en la primera condición se cargue el valor de $local1 y $visita1, en la segunda $local2 y $visita2, y así sucesivamente hasta que se cumpla la condición del while.
¿Es posible?¿Se entiende?
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 VRM
Val: 152
Ha disminuido su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

problema al insertar datos a mysql

Publicado por VRM (192 intervenciones) el 15/04/2016 08:05:17
Hola:

Como $primero va incrementando su valor: 1, 2, 3, ... En el while puedes poner:

1
2
3
4
5
6
while($primero < $partidos){
     $nombre_variable_local= "local$primero";
     $local_a_guardar = $$nombre_variable_local;
     mysql_query("INSERT INTO partidos (fase, fecha, nopar, grupo, tipo, local, goloc, visita, golvis, pl, pv, datep, hora, estado) VALUES ('$fase','$fecha','$primero','$grupo','$tipo','$local_a_guardar',NULL,'$visita',NULL,NULL,NULL,NULL,NULL,'$estado')");
     $primero++;
}

En la linea 2 construyes el nombre de la variable que te interesa concatenando local y el valor de $primero: local1, local2, local3,...
En la linea 3 guardas el contenido de estas variables en $local_a_guardar. El doble $ no es una errata, se está diciendo que se guarde en $local_a_guardar el contenido de la variable que tiene el nombre del contenido de $nombre_variable_local
En la linea 4 se guarda en la base el contenido de $local_a_guardar que coincide con el de $local1 en la primera iteración, con el de $local2 en la segunda, etc.

Espero haberme explicado bien.

Saludos de Víctor.-
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