Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/06/2012, 12:11
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 10 meses
Puntos: 528
Respuesta: Problemas con consulta SQL

Algunas anotaciones: usa números en el caso, no cadenas
case "1": -> case 1:

No necesitas duplicar el código de tu case

Código PHP:
Ver original
  1. <?php
  2. //Funcion para calcular precio del alquiler de coches.
  3. function calcular_precio($recogida,$entrega,$coche){
  4.     //declara $total como variable global  
  5.     global $total; 
  6.     $SacarTarifa = mysql_query("SELECT * FROM tarifas where coche='$coche' AND inicio<='$recogida' AND fin>='$entrega'", conectar()) or die(mysql_error());
  7.     //Si el periodo de la reserva está comprendido entre el inicio y el fin de la tarifa aplicada
  8.     if(mysql_num_rows($SacarTarifa)){      
  9.         $dataTarifa = mysql_fetch_array($SacarTarifa);
  10.         //contar dias de la reserva
  11.         $dias = abs((strtotime($entrega) - strtotime($recogida))/86400);
  12.     }
  13.     //Si el periodo de la reserva tiene diferentes tarifas, saco el precio desde la tarifa donde se encuentra $recogida.
  14.     else{
  15.         $SacarTarifa = mysql_query("SELECT * FROM tarifas where coche='$coche' AND inicio <= '$recogida'", conectar()) or die(mysql_error());
  16.         $dataTarifa = mysql_fetch_array($SacarTarifaM);
  17.         $dias = abs((strtotime($entrega) - strtotime($recogida))/86400);
  18.     }
  19.                 //aplico los precios
  20.     switch ($dias1){
  21.         case 1: $total=$dataTarifa['p_1']; break;
  22.         case 2: $total=$dataTarifa['p_2']; break;
  23.         case 3: $total=$dataTarifa['p_3']; break;
  24.         case 4: $total=$dataTarifa['p_4']; break;
  25.         case 5: $total=$dataTarifa['p_5']; break;
  26.         case 6: $total=$dataTarifa['p_6']; break;                          
  27.         case 7: $total=$dataTarifa['p_7']; break;                      
  28.         case 14: $total=$dataTarifa['p_14']; break;
  29.     }
  30.     if(($diasM>7)&&($diasM<14)){
  31.         $total=($dataTarifaM['p_7']/7)*$diasM;
  32.     }if($diasM>14){
  33.         $total=($dataTarifaM['p_14']/14)*$diasM;
  34.     }
  35.     //Devolver el total de la reserva
  36.     return $total;
  37. }
  38. ?>