Foros del Web » Programando para Internet » PHP »

Consulta sin resultados

Estas en el tema de Consulta sin resultados en el foro de PHP en Foros del Web. Hola, Buen Día todos. Tengo una base de datos con 3 tablas 2 de ellas son catalogos y la que contiene los datos con mas ...
  #1 (permalink)  
Antiguo 09/06/2010, 13:44
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 0
Consulta sin resultados

Hola, Buen Día todos.

Tengo una base de datos con 3 tablas 2 de ellas son catalogos y la que contiene los datos con mas de 900 registros,estoy haciendo una consulta sobre ellos de acuerdo a variables que traigo de un formulario anterior estoy tratando de concatenar mi query de acuerdo a las variables que no estan vacias,pero no me trae ningun registro ya probe mi query en phpmyadmin y filtra perfecto pero cuando lo ejecuto en php no trae absolutamente nada,de verdad he revisado a detalle el codigo y no se que pueda estar mal or que pongo mi query directo sin concatenarlo y la consulta la hace bien agradeceria su ayuda, el codigo es el siguiente ( he quitado toda ll demas y dejado solo lo que me interesa):

<?php
$Institucion = $_POST['Institucion'];
$Tipo = $_POST['Tipo'];
$Investigador = $_POST['Investigador'];
$Area = $_POST['area'];

include('conexion.php');
$link = conec();
?>


<?php
$Q = 'select i.nombre as nombre,u.nombre as unidad,i.uacademica as aca,a.nombre as area,i.aplicacion as apli,i.nivel,i.email,i.telefono from areas as a,investigadores as i, universidades as u where i.idarea=a.idarea and u.iduniversidad=i.iduniversidad ';

//Comparo si vienen vacias las variables
if(!empty($Institucion))
{
$Q = $Q . " and u.nombre='". $Institucion ."' ";
}

if(!empty($Investigador))
{
$Q = $Q . " and i.nombre='" . $Investigador ."' ";
}

if(!empty($Area))
{
$Q = $Q ." and a.idarea=" . $Area . ";";
}




$resultado = mysql_query($Q,$link);
?>

<?php
echo $query;
echo $resultado;
if($resultado)
{
while($row = mysql_fetch_array($resultado))
{
echo $row['nombre'] ."\n";
echo $row['unidad'] ."\n";

}
}


?>
  #2 (permalink)  
Antiguo 09/06/2010, 13:55
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Consulta sin resultados

Consulta...:
Código PHP:
echo $query;
//no deberia ser ???
echo $Q
echo $result te muestra algo? (un ResourceId o algo asi?)
Cuentanos mas al respecto, en una de esas lo que necesitas solo es arreglar como concatenar las condiciones.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 09/06/2010, 15:46
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Consulta sin resultados

Hola, de verdad agradezco el interes..

Bien con respecto a la impresion si solo lo que hago con esa es imprimir mi consulta para ver si esta bien concatenada y efectivamente si la conctena bien , la variable Investigador e Institucion son de tipo string y el campo de Area es numero trae el id de un control select, he hecho algunas pruebas y me he dado cuenta que cuando solo dejo lleno en mi formulario ese campo (Area) y no lleno la de investigador ni Institucion me filtra bien los datos pero cuando pongo el nombre o la institucion mas el id area no filtra nada , es decir algo raro pasa con las cadenas no se si me explique.. Y con respecto a tu pregunta de que me imprime cuando hago
echo $resultado. "\n\n"; lo que me impirme es Resource id #4 pero al verdad no se que significa Gracias!!.
  #4 (permalink)  
Antiguo 09/06/2010, 17:11
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Consulta sin resultados

Ok... entonces haz lo siguiente:
Código PHP:
$Institucion $_POST['Institucion'];
$Tipo $_POST['Tipo'];
$Investigador $_POST['Investigador'];
$Area $_POST['area'];
echo 
$Institucion.'-'.$Tipo.'-'.$Investigador.'-'.$Area;
/*[...]*/
$Q "SELECT i.nombre as nombre, u.nombre as unidad, i.uacademica as aca, a.nombre as area, i.aplicacion as apli, i.nivel, i.email, i.telefono
    FROM areas a, investigadores i, universidades u
    WHERE i.idarea = a.idarea 
    AND u.iduniversidad = i.iduniversidad"
;

//Comparo si vienen vacias las variables
if(!empty($Institucion) && isset($Institucion)){
    
$Q .= "
    AND u.nombre='"
.$Institucion."'";
}
if(!empty(
$Investigador) && isset($Investigador)){
    
$Q .= "
    AND i.nombre='"
.$Investigador."'";
}
if(!empty(
$Area) && isset($Area)){
    
$Q .= "
    AND a.idarea="
.$Area."";
}
echo 
$Q
Y dinos que es lo que reflejan estos cambios.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 10/06/2010, 11:13
 
Fecha de Ingreso: mayo-2010
Mensajes: 9
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Consulta sin resultados

Hola, Marvin.

Pues bien te comento,estaba haciendo la impresion del Query recuerdas lo que me indicaste en el 2do post?, me di cuenta que las cadenas pasaban con caracteres raros es decir si yo tenia algun nombre o Institución con acento me lo sustituia con caracteres raros.

Bien cuando hacia copy paste en el phpmyadmin los caracteres desaparecian me ponia el nombre corecto a lo cual me filtraba sin problemas.

Entonces lo que me di cuenta es que desde el php hacia la consulta con el texto con caracteres raros por ejemplo:

Si yo pasaba el nombre Benemérita Universidad Autónoma en el campo de institución mi variable pasaba con los carcteres raros por lo cual se hacia la consulta y obvio no encontraba similitud en la Bd ya que ahi estan bien los acentos.

La solución fue que tuve que utilizar utf8_encode y utf8_decode segun resolviera mi problema tanto en datos que trae de mi base como cuando los paso ya que al hacer mis consultas aunque en la Bd estan bien los acentos en php me los muestra con caracteres raros y viceversa.

En mi archivo tengo la codificación utf-8
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
y la base de datos la tengo codificada con utf8_general_ci.

La verdad no entiendo por que no jala correctamente, y tampoco entiendo muy bien esto de las codificaciones,, de paso si alguien me puede explicar por que,pues estaria padre.

De verdad agradezco de tu ayuda Marvin.... un para ti.

Salu2
  #6 (permalink)  
Antiguo 10/06/2010, 11:36
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Consulta sin resultados

En el fondo asi debe ser, porque un acento o una ñ en utf8 es siempre un codigo raro...

Suerte! !
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!

Etiquetas: resultados
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 12:15.