Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/08/2012, 11:16
Avatar de protoameeba
protoameeba
 
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: if dentro de mysql

voy...


primera tabla:


Código PHP:
Ver original
  1. $sql = "SELECT * FROM  afiliados WHERE nombre='$nombre'";
  2. $consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta");
  3. While ($registro=mysql_fetch_array($consulta))
  4. {
  5. $ciudad=$registro["ciudad"];
  6. $provincia=$registro["provincia"];
  7. $pais=$registro["pais"];
  8. $disponible=$registro["disponible"];
  9. $presupuesto=$registro["presupuesto"];
  10. $moneda=$registro["moneda"];   
  11. }

le meto unos if para testar esas variables y despues cargar la siguiente mysql


Código PHP:
Ver original
  1. if($disponible==1 || $disponible==4)
  2. {
  3. $disponibleZona="pais='$pais'";
  4. }
  5. else
  6. {
  7.     if($disponible==2)
  8.     {
  9.     $disponibleZona="ciudad='$ciudad'";
  10.     }
  11.     else
  12.     {
  13.         if($disponible==3)
  14.         {
  15.         $disponibleZona="provincia='$provincia'";
  16.         }
  17.         else
  18.         {
  19.             if($disponible==5)
  20.             {
  21.             $disponibleZona="pais<>''";
  22.             }
  23.             else
  24.             {
  25.             }
  26.         }  
  27.     }
  28. }

convierto el presupuesto de la moneda en la que este el usuario, ponle euros a todas las monedas de la pagina, ponle a dolares... y le saco una variable para cada uno, por ejemplo:

$presupuesto_dolares="lo_que_sea";
$presuepuesto_yenes="lo_que_sea";
etc...

y AQUI ES DONDE VIENE EL PROBLEMA le digo que para que seleccione de la base de datos el presupuesto del proyecto tiene que ser mayor o igual que el presupuesto minimo que el usuario a determinado en la primera tabla:

Código PHP:
Ver original
  1. if($budget=='')
  2. {
  3. $budgetZone="";
  4. }
  5. else
  6. {
  7. $budgetZone="AND budget >='$budget'";
  8. }

estas variables se cargan despues en la segunda consulta:

lo que tendria que hacer es algo asi como:
lo pongo sin resaltar para marcar lo que me interesa...

if($presupuesto=='')
{
$presupuestoZona="";
}
else
{
$presupuestoZona="AND budget >='if(moneda=USD,$presupuesto_dolares,si_no_otro_if, y asi hasta que encaje...)'
}


notese que lo marcado en verde moco es una condicion que se esta consultando a la sengunda tabla en tiempo real, lo azul es la variable que cargamos antes y todo junto (rojo+verde_moco+azul) es lo que quiero hacer...

ahora pongo la segunda tabla con todas las variables cargadas:

Código PHP:
Ver original
  1. $focodebusqueda= "anuncios WHERE $disponibleZona $presupuestoZona";
  2.  
  3.  
  4. mysql_query ("SET NAMES utf8");
  5. mysql_query("mysql_set_charset_name(&mysql, 'utf8')");
  6. $todos = "select count(*) as num from $focodebusqueda ";
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....