Ver Mensaje Individual
  #5 (permalink)  
Antiguo 26/02/2012, 12:01
Avatar de xinote
xinote
 
Fecha de Ingreso: enero-2012
Ubicación: Valladolid, Spain
Mensajes: 78
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: escribir los dias que hay entre 2 fechas

Cita:
Iniciado por repara2 Ver Mensaje
Tal y como tienes el código, hay dos selects:

Código PHP:
Ver original
  1. //calculo SQL entre 2 fechas
  2. $diasvacas = mysql_query("SELECT TO_DAYS(fechafin) - TO_DAYS(fechaini) FROM vacaciones order by codigo ASC");
calcular la diferencia en días, y

Código PHP:
Ver original
  1. //extraigo info de la sql
  2. $result = mysql_query("SELECT *,DATE_FORMAT(fechaini,'%d/%m/%Y') as fechaini, DATE_FORMAT(fechafin,'%d/%m/%Y') as fechafin  FROM vacaciones order by codigo ASC");

para obtener las fechas con formato. Por lo tanto, hay 2 consultas a la DB, para obtener los valores de una y de otra se deben recorrerlas por separado. El error es que tú solo recorres una en la linea:

Código PHP:
Ver original
  1. while($row=mysql_fetch_array($result))

y no haces caso de la anterior, que se guarda en $calcula.

Dado que la información de ambas select viene de la misma tabla, lo lógico sería hacer una select para obtener todos los valores juntos:

Código MySQL:
Ver original
  1. SELECT V.*, (TO_DAYS(V.fechafin) - TO_DAYS(V.fechaini)) as diff, DATE_FORMAT(V.fechaini,'%d/%m/%Y') as fechaini, DATE_FORMAT(V.fechafin,'%d/%m/%Y') as fechafin FROM vacaciones V order by codigo ASC

Ahora una misma select contiene todos los valores y puedes recorrerla en un sólo while(). Si la select te da error es porque mi sintaxis en incorrecta, compruébala en tu cliente mysql.

na con ese select k me pusistes tu no funciona,lo modifike despues haber y tampoco de exo se me keda como cargando sin mostrar nada en la pantalla no entendi que era lo de V. asi k lo modifike para ver y tampoco ahora esta asi pero asi no carga
Código PHP:
$result mysql_query("SELECT *, (TO_DAYS(fechafin) - TO_DAYS(fechaini)) as diff, DATE_FORMAT(fechaini,'%d/%m/%Y') as fechaini, DATE_FORMAT(fechafin,'%d/%m/%Y') as fechafin FROM vacaciones ORDER BY codigo ASC"); 
Código PHP:
while($row=mysql_fetch_array($result))  

$calcula mysql_result($result,0);