Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/01/2013, 14:39
nades
 
Fecha de Ingreso: enero-2013
Ubicación: Distrito Federal
Mensajes: 88
Antigüedad: 11 años, 3 meses
Puntos: 1
Consultar si datos estan en BD y hacer operaciones

Hola!
Estoy realizando un formulario con PHP, Javascript y consultas de SQL

Mis datos son:
Edificio (select - option)
Habitaciones (hacer una funcion de javascript que muestra resultados de mi BD dependiendo el Edificio que selecciono.
Tarifa (con una funcion Javascript hago una consulta a mi BD para que me muestre el precio de la habitacion seleccionada anteriormente.
Fecha Inicio
Fecha Fin
(estas opciones tienen un calendario Js para seleccionar las fechas.

Lo que necesito es que al seleccionar mi Fecha Final necesita validar si los 5 datos se encuentran en mi BD, de no estar poder sacar una diferencia de los días y el total.

Tengo este codigo que no me ha resultado

index.php

Código PHP:
Ver original
  1. <input type="text" name="fechafin" id="fechafin" class="ingresor" onchange="validaCantidad();" />
  2. // Llama a funcion al terminar de seleccionar la Fecha Final

Código PHP:
Ver original
  1. function validaCantidad() {
  2.   var ed=document.nueva.edificio.value;
  3.   var hab=document.nueva.habitaciones.value;
  4.   var tar=document.nueva.tarifa.value;
  5.   var fi=document.nueva.fechainicio.value;
  6.   var ff=document.nueva.fechafin.value;
  7.  
  8.   // Guarda variables de formulario y los envia a archivo PHP
  9.   location.href="procesos.php?ed="+ed+"&hab="+hab+"&tar="+tar+"&fi="+fi+"&ff="+ff+"";  
  10. }

Mi archivo procesos.php es

Código PHP:
Ver original
  1. <?php
  2. include 'includes/conexion.php';
  3.  
  4. // Verifica variables
  5. if(!isset($_GET['ed']))$_GET['ed']=0;
  6. $edificio=$_GET['ed'];
  7. if(!isset($_GET['hab']))$_GET['hab']=0;
  8. $habitacion=$_GET['hab'];
  9. if(!isset($_GET['tar']))$_GET['tar']=0;
  10. $tarifa=$_GET['tar'];
  11. if(!isset($_GET['fi']))$_GET['fi']=0;
  12. $fechainicio=$_GET['fi'];      
  13. if(!isset($_GET['ff']))$_GET['ff']="";                            
  14. $fechafin=$_GET['ff'];
  15.  
  16. // Hace consulta a mi BD
  17. conectar();
  18. $consulta=mysql_query("SELECT * FROM reservaciones WHERE idedificio='$ed' AND idhabitacion='$hab' AND fecha_inicio='fi' AND fecha_fin='ff'");
  19. desconectar();
  20.  
  21. $res = mysql_num_rows($consulta);
  22.  
  23. // Compara si  mi resultado esta vacio
  24. if($res == 0) {
  25.     if ($fechainicio <= $fechafin ) { //
  26.         echo "<script>alert('La Fecha de Salida no puede ser menor que la Fecha de Entrada')</script>";  
  27.     } else {
  28.                 // Separo mis fechas
  29.         $FI = explode("-", $fechainicio);
  30.         $FF = explode("-", $fechafin);
  31.        
  32.         // Fecha 1
  33.         $ano1 = $FI[0];
  34.                 $mes1 = $FI[1];
  35.                 $dia1 = $FI[2];
  36.  
  37.         // Fecha 2
  38.         $ano2 = $FF[0];
  39.         $mes2 = $FF[1];
  40.         $dia2 = $FF[2];
  41.  
  42.         // Calculo TIMESTAM de las dos fechas
  43.         $timestamp1 = mktime(0,0,0,$mes1,$dia1,$ano1);
  44.         $timestamp2 = mktime(4,12,0,$mes2,$dia2,$ano2);
  45.  
  46.         // Resto a una fecha la otra
  47.         $segundos = $timestamp1 - $timestamp2;
  48.  
  49.         // Convierto segundos en días
  50.         $noches = $segundos / (60 * 60 * 24);
  51.  
  52.         // Obtengo valor de los días (quito el posible signo negativo)
  53.         $noches = abs($noches);
  54.  
  55.         // Quito decimales a los días de diferencia
  56.         $noches = floor($noches);
  57.            
  58.     $total=$noches*$tarifa;
  59.  
  60.     }
  61. }
  62.  
  63. // envio variables a mi formulario para mostrar resultado de variables
  64. $direccion='index.php?noches='.$noches.'&total='.$total;
  65. header("Location: $direccion");
  66. ?>

index.php

Código PHP:
Ver original
  1. <?php echo $noches ?>
  2. <?php echo $total ?>

Que es lo que me falla???