Foros del Web » Programando para Internet » PHP »

Utilizacion de FOR con Arrays en MYSQL

Estas en el tema de Utilizacion de FOR con Arrays en MYSQL en el foro de PHP en Foros del Web. Hola buenas tengo un problema con un programa en PHP / MyQL en el cual cargo las fechas (de tabla vacaciones) en un array utilizando ...
  #1 (permalink)  
Antiguo 30/04/2014, 01:53
 
Fecha de Ingreso: noviembre-2013
Mensajes: 1
Antigüedad: 11 años
Puntos: 0
Utilizacion de FOR con Arrays en MYSQL

Hola buenas tengo un problema con un programa en PHP / MyQL en el cual cargo las fechas (de tabla vacaciones) en un array utilizando un WHILE y posteriormente lanzo un bucle FOR para que recorre desde una fecha origen a una fecha destino que yo especifique a traves del formulario con intencion de que me separe los dias habiles de los fines de semana y festivos

El problema es que el FOR solo coje el primer registro que tengo en la base de datos MYSQL de la tabla vacaciones y para, los sabados/domingos funcionan perfectamente, pero realmente el WHILE carga todos los registros ya que si los muestro con un echo los saca todos.

Código:
<?php
	
	include "conexion.php";

	$fecha1=$_POST['data1'];
	$fecha2=$_POST['data2'];
	$fecha1 = strtotime($fecha1); 
	$fecha2 = strtotime($fecha2); 
	$Cont2=0;
	$cont=0;	
	$diasfestivos=0;
	
			//RESTA FECHAS
			
			$segundos=($fecha2) - ($fecha1) ;
			$diferencia_dias=intval($segundos/60/60/24);
			$diferencia_dias2=$diferencia_dias+1;
			echo "<h3><br><font color=purple>La cantidad de d&iacuteas entre las 2 fechas son : <b>$diferencia_dias2</b> </font><br><br></h3>" ;
			
			//SELECCIONAR DIAS FESTIVOS DE LA TABLA
			
			$festivo=mysql_query ("SELECT Fecha FROM tab_vacaciones;",$conexion);
				if ($festivo!=0)
					{
						while ($solucion=mysql_fetch_array($festivo))
						{
							$diasfestivos=$solucion[0];
							$cont=$cont+1;
							$diasfestivos=strtotime($diasfestivos);
							
							// BUQLE FECHAS
								for($fecha1;$fecha1<=$fecha2;$fecha1=strtotime('+1 day ' . date('Y-m-d',$fecha1)))
									{ 
										if((s
										
										) AND (strcmp(date('D',$fecha1),'Sat')!=0) AND ($fecha1!=$diasfestivos))
										{
											echo "<br>";
											echo date('Y-m-d D',$fecha1);
											echo "<font color=blue>--NO HAY DIAS FESTIVOS NI FINES DE SEMANA</font><br><br>";
											echo "<br>";
											// FALTA -- INSERT INTO tab_datos VALUES ();
										}	
									
												 ELSE
											{
												echo date('Y-m-d D',$fecha1);
												echo "--<font color=red>FIN DE SEMANA O FESTIVO:</font><br> ";
												$Cont2=$Cont2+1;
												echo "<br>";
												echo "<br>";
											}	
									}
									
							echo "<font color=purple><b><table><tr><td>Dia Festivo </font>:</b> " .$solucion[0]. "/<br>" ;
							echo "<br>";
						}
					}

						
						
				
																							
					
?>
Imagen de la ejecucion

  #2 (permalink)  
Antiguo 30/04/2014, 06:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Utilizacion de FOR con Arrays en MYSQL

No se si acabo de entender como lo estas enfocando, en cualquier caso dos cosas:

Manual
Cita:
mysql_fetch_array — Recupera una fila de resultados como un array asociativo, un array numérico o como ambos.
es decir a cada ciclo del bucle while lee una fila del resultado y el bucle no termina hasta que se han leido todas.


y aqui

Código PHP:
Ver original
  1. if((s
  2. ) AND (strcmp(date('D',$fecha1),'Sat')!=0) AND ($fecha1!=$diasfestivos))
  3. {

debe faltar algo, no?


Repasa esto y repregunta si hace falta.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: arrays, fecha, formulario, mysql, registro, select, sql, tabla, utilizacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:09.