Foros del Web » Programando para Internet » PHP »

Problema para filtro php mysql

Estas en el tema de Problema para filtro php mysql en el foro de PHP en Foros del Web. Hola no logro hacer que funcione este codigo para filtrar resultados que puedo hacer? Código: $query_consulta = "SELECT * FROM reclamos"; $conditions = array(); if($area ...
  #1 (permalink)  
Antiguo 07/04/2014, 10:20
 
Fecha de Ingreso: enero-2012
Mensajes: 224
Antigüedad: 12 años, 3 meses
Puntos: 1
Problema para filtro php mysql

Hola no logro hacer que funcione este codigo para filtrar resultados
que puedo hacer?


Código:

$query_consulta = "SELECT * FROM reclamos";
$conditions = array();

 if($area !=""){
  $conditions[] = " WHERE area = '$area' ";
}


 if($localidad !=""){
  $conditions[] = " WHERE localidad = '$localidad' ";
}


if( count( $conditions[''] ) > 0 ) { 
$query_consulta.= " WHERE " . implode ( " AND ", $conditions)."ORDER  BY id DESC" ; // = SELECT * FROM //  

}
  #2 (permalink)  
Antiguo 07/04/2014, 10:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema para filtro php mysql

A mi me da la impresión de que ese código podría generar una query del tipo:
Código SQL:
Ver original
  1. SELECT * FROM reclamos
  2. WHERE ... WHERE ... WHERE...
donde "..." son las condiciones añadidas.

Sólo puede haber un único WHERE, con todas las condiciones separadas por AND u OR.

Verifica la query tal y como quede armada y veamos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/04/2014, 11:39
 
Fecha de Ingreso: enero-2012
Mensajes: 224
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Problema para filtro php mysql

sie s verdad me confundi yo es asi

Código:


$query_consulta = "SELECT * FROM reclamos ";
$conditions = array();

 if($area !=""){
  $conditions[] = " area = '$area' ";
}


 if($localidad !=""){
  $conditions[] = " localidad = '$localidad' ";
}


if( count( $conditions[''] ) > 0 ) { 
$query_consulta .= " WHERE " . implode ( " AND ", $conditions)."ORDER  BY id DESC" ; // = SELECT * FROM //  
}
  #4 (permalink)  
Antiguo 07/04/2014, 11:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema para filtro php mysql

¿Hiciste una prueba?
¿Cómo quedó armada la query al final?
Haz que te la muestre en pantalla y verifica la sintaxis.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 07/04/2014, 12:36
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: Problema para filtro php mysql

te va a faltar un espacio entre el " y el order.. osea

( " AND ", $conditions)." ORDER BY id DESC"
  #6 (permalink)  
Antiguo 08/04/2014, 07:19
 
Fecha de Ingreso: enero-2012
Mensajes: 224
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Problema para filtro php mysql

hola la consulta me devuelve todos los campos con id ASC

es como que solo me toma esta parte de la consulta

$query_consulta = "SELECT * FROM reclamos ";


Código:

<?php
//initialize the session
session_start();

// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
  $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
  //to fully log out a visitor we need to clear the session varialbles
  session_unregister('MM_Username');
  session_unregister('MM_UserGroup');
	
  $logoutGoTo = "../index.php";
  if ($logoutGoTo) {
    header("Location: $logoutGoTo");
    exit;
  }
}
?>
<?php
session_start();

 $MM_authorizedUsers = "10, 20";
$MM_donotCheckaccess = "false";


// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { 
  // For security, start by assuming the visitor is NOT authorized. 
  $isValid = False; 

  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  if (!empty($UserName)) { 
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    $arrUsers = Explode(",", $strUsers); 
    $arrGroups = Explode(",", $strGroups); 
    if (in_array($UserName, $arrUsers)) { 
      $isValid = true; 
    } 
    // Or, you may restrict access to only certain users based on their username. 
    if (in_array($UserGroup, $arrGroups)) { 
      $isValid = true; 
    } 
    if (($strUsers == "") && false) { 
      $isValid = true; 
    } 
  } 
  return $isValid; 
}

$MM_restrictGoTo = "../index.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0) 
  $MM_referrer .= "?" . $QUERY_STRING;
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo); 
  exit;
}

?>
<?php


$area = $_GET['area'];
$localidad = $_GET['localidad'];


$maxRows_consulta = 15;
$pageNum_consulta = 0;
if (isset($_GET['pageNum_consulta'])) {
  $pageNum_consulta = $_GET['pageNum_consulta'];
}
$startRow_consulta = $pageNum_consulta * $maxRows_consulta;

mysql_select_db($database_localhost, $localhost);
$query_consulta = "SELECT * FROM reclamos ";
$conditions = array();

 if($area !=""){
  $conditions[] = " area = '$area' ";
}


 if($localidad !=""){
  $conditions[] = " localidad = '$localidad' ";
}

if( count( $conditions[''] ) > 0 ) { 
$query_consulta .= " WHERE " . implode ( " AND ", $conditions)."ORDER  BY id DESC" ; // = SELECT * FROM //  
}  

$query_limit_consulta = sprintf("%s LIMIT %d, %d", $query_consulta, $startRow_consulta, $maxRows_consulta);
$consulta = mysql_query($query_limit_consulta, $localhost) or die(mysql_error());
$row_consulta = mysql_fetch_assoc($consulta);

if (isset($_GET['totalRows_consulta'])) {
  $totalRows_consulta = $_GET['totalRows_consulta'];
} else {
  $all_consulta = mysql_query($query_consulta);
  $totalRows_consulta = mysql_num_rows($all_consulta);
}
$totalPages_consulta = ceil($totalRows_consulta/$maxRows_consulta)-1;




$queryString_consulta = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_consulta") == false && 
        stristr($param, "totalRows_consulta") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_consulta = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_consulta = sprintf("&totalRows_consulta=%d%s", $totalRows_consulta, $queryString_consulta);
?>

Etiquetas: mysql, select
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 02:35.