Foros del Web » Programando para Internet » PHP »

Query sin criterios de busqueda (ayuda!!!)

Estas en el tema de Query sin criterios de busqueda (ayuda!!!) en el foro de PHP en Foros del Web. Hola, tengo problemas con esta query, no logro hacerla andar. La idea de esto es que pueda buscar en la BD sin criterios, es decir, ...
  #1 (permalink)  
Antiguo 01/09/2006, 14:48
Avatar de 2D6
2D6
 
Fecha de Ingreso: enero-2006
Ubicación: Posadas, Misiones
Mensajes: 60
Antigüedad: 18 años, 3 meses
Puntos: 4
Query sin criterios de busqueda (ayuda!!!)

Hola, tengo problemas con esta query, no logro hacerla andar.
La idea de esto es que pueda buscar en la BD sin criterios, es decir, si yo tengo una BD con nombres de personas que viven en tal ciudad yo quiero poder buscar a todos los "juanes" (tengo la camisa negra.... :p) que viven en la ciudad "X" o a todos los juanes que viven en todas las ciudades, no se si se me entiende muy bien, pero espero que si :)
Ahi va el codigo.

Código PHP:
if (empty($dataArea0))
{
$dataArea0 ='2001-01-01';
}
if (empty(
$dataArea1))
{
$dataArea1 date("y-m-d");
}

mysql_select_db($database_pendientes$pendientes);
$result mysql_query ("SELECT * FROM pendientes_facturas WHERE fecha >= '$dataArea0' AND fecha <= '$dataArea1' AND ('numfactura' = '$factnumero' OR '$factnumero' = '') AND (pendiente = '$pendiente' OR '$pendiente' = '') AND (sucursal = '$sucursal' OR '$sucursal' = '') AND (empresa = '$empresa' OR '$empresa' = '') AND (cliente = '$cliente' OR '$cliente' = '') AND (tipof = '$tipof' OR '$tipof' = '')");
$numeroRegistros=mysql_num_rows($result);
while(
$r=mysql_fetch_array($result))
{
    
$desc=$r["desc"];
    
$tipof=$r["tipof"];
    
$empresa=$r["empresa"];
    
$fecha=$r["fecha"];
    
$fechapago=$r["fechapago"];
    
$idfactura=$r["idfactura"];
    
$importe=$r["importe"];
    
$imprimir=$r["imprimir"];
    
$numfactura=$r["numfactura"];
    
$pendiente=$r["pendiente"];
    
$periodo=$r["periodo"];
    
$registro=$r["registro"];
    
$sucursal=$r["sucursal"];
    
$cliente=$r["cliente"];
    
    
$result2 mysql_query ("SELECT * FROM pendientes_empresas WHERE idempresa = '$empresa'");
    
$numeroRegistros2=mysql_num_rows($result2);
    while(
$r=mysql_fetch_array($result2))
        {
        
$nomempresa=$r["empresa"];
        }

if (
$pendiente == '01')
{
$pendiente "Pendiente";
}
else if (
$pendiente == '02')
{
$pendiente "Paga";
}
else
{
$pendiente "Anulada";

El resultado de esto es 0 (nada) tenga pase o no los valores el resultado es el mismo.
¿Alguien sabe que estoy haciendo mal?

Muchas gracias por la ayuda!!

Saludos!
  #2 (permalink)  
Antiguo 01/09/2006, 14:57
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Si tu tabla tiene una estructura asi:

Código:
nombre     ciudad
---------------
juanes      ciudad1
juanes      ciudad2
juanes      ciudad3
Para buscar todos los juanes haces:

select * from tabla where nombre='juanes'

Para buscar los juanes de una ciudad haces:

select * from tabla where nombre='juanes' and ciudad='ciudad1'
  #3 (permalink)  
Antiguo 02/09/2006, 11:12
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 9 meses
Puntos: 88
supongo que tu problema radica en tu select
Código PHP:
SELECT FROM pendientes_facturas WHERE fecha >= '$dataArea0' AND fecha <= '$dataArea1' AND ('numfactura' '$factnumero' OR '$factnumero' '') AND (pendiente '$pendiente' OR '$pendiente' '') AND (sucursal '$sucursal' OR '$sucursal' '') AND (empresa '$empresa' OR '$empresa' '') AND (cliente '$cliente' OR '$cliente' '') AND (tipof '$tipof' OR '$tipof' ''
te explico donde creo que esta el error.

'numfactura' = '$factnumero' OR '$factnumero' = ''

esto(segun yo) debería estar así
Código PHP:
numfactura '$factnumero' OR numfactura ''//(nombre del campo=variable OR nombre del campo=''). 
esto es asi ya que el mysql compara los campos de la tabla con los valores que tienen las variables ya que si lo dejas como esta al hacer el select estarias haciendo algo como esto.
Código PHP:
$factnumero='';//supongamos que esta variable esta vacia
$result mysql_query (SELECT FROM pendientes_facturas WHERE fecha >= '$dataArea0' AND fecha <= '$dataArea1' AND ('numfactura' '$factnumero' OR '$factnumero' '')); 
lo que estarias pidiendo a mysql es algo así.
Código PHP:
SELECT FROM pendientes_facturas WHERE fecha >= '$dataArea0' AND fecha <= '$dataArea1' AND ('numfactura' '' OR '' ''
para que me entiendas mejor haz un
Código PHP:
echo result mysql_query ("SELECT * FROM pendientes_facturas WHERE fecha >= '$dataArea0' AND fecha <= '$dataArea1' AND ('numfactura' = '$factnumero' OR '$factnumero' = '') AND (pendiente = '$pendiente' OR '$pendiente' = '') AND (sucursal = '$sucursal' OR '$sucursal' = '') AND (empresa = '$empresa' OR '$empresa' = '') AND (cliente = '$cliente' OR '$cliente' = '') AND (tipof = '$tipof' OR '$tipof' = '')"
y ve si la consulta el la que quieres.
espero espero y te siva.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
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 22:16.