Foros del Web » Programando para Internet » PHP »

me da query vacio, siendo que existe

Estas en el tema de me da query vacio, siendo que existe en el foro de PHP en Foros del Web. Tengo un formulario que ingresa los valores en POST, con el formulario pretendo obtener restricciones para una busqueda. Los datos son de personas, RUT, nombre, ...
  #1 (permalink)  
Antiguo 13/03/2009, 10:48
 
Fecha de Ingreso: marzo-2009
Mensajes: 41
Antigüedad: 15 años, 1 mes
Puntos: 1
me da query vacio, siendo que existe

Tengo un formulario que ingresa los valores en POST, con el formulario pretendo obtener restricciones para una busqueda. Los datos son de personas, RUT, nombre, fecha nacimiento (fech), rango en la empresa (compuesto por 3 pares de nuemeros que los llamo rang1, rang2, rang3)

por ahora estoy pidiendo que pueda descriminarse por cualquier valor que se entregue en el formulario el codigo que tengo es.

<?PHP
//cabecera de la pagina habre el html y body etc..
include(cabecera);
//coneccion a la db
include(conexion);

//quita puntos y - si se anotan en el rut
$ra=strtoupper(ereg_replace('\.|,|-','',$_POST[rut]));

//contador que uso para ver si hay mas de un dato agregado en el formulario
$restr="0";

//ordena la fecha para mysql la fecha se ingresa dia-mes-año
$fecha = explode("-",$_POST[fech]);
$fechaMySQL1=$fecha[2]."-".$fecha[1]."-".$fecha[0];


//aqui defino la restriccion o restricciones para la busqueda. guardandolo en $brut1
//si no esta vacio y es el primero agregara al quiery WHERE y no AND
if(!empty($_POST['rut'])) {
$brut1="WHERE 'rut' = '$ra'";
$restr=$restr+1;
}
//si existe agrega si es el priemero Where o si es segunda o mas restriccion AND
if(!empty($_POST['nombre'])) {
if ($restr>=1) {
$brut1= $brut1." AND 'nombre' = ".$_POST['nombre'];
} else {
$brut1= "WHERE 'nombre' = ".$_POST['nombre'];}
$restr=$restr+1;
}

if(!empty($_POST['fech'])) {
if ($restr>=1) {
$brut1= $brut1." AND 'fech' <= '$fechaMySQL1'";
} else {
$brut1= "WHERE 'fech' <= '$fechaMySQL1'";}
$restr=$restr+1;
}

if(!empty($_POST['rang1'])) {
if ($restr>=1) {
$brut1= $brut1." AND 'rang1' = ".$_POST['rang1'];
} else {
$brut1= "WHERE 'rang1' = ".$_POST['rang1'];}
$restr=$restr+1;
}

if(!empty($_POST['rang2'])) {
if ($restr>=1) {
$brut1= $brut1." AND 'rang2' = ".$_POST['rang2'];
} else {
$brut1= "WHERE 'rang2' = ".$_POST['rang2'];}
$restr=$restr+1;
}

if(!empty($_POST['rang3'])) {
if ($restr>=1) {
$brut1= $brut1." AND 'rang3' = ".$_POST['rang3'];
} else {
$brut1= "WHERE 'rang3' = ".$_POST['rang3'];}
$restr=$restr+1;
}

//aqui termina la restriccion
$query="SELECT * FROM pruebafac $brut1 ORDER BY fech ASC";
$resulta=mysql_query($query) or die ($query .mysql_error()."" ) ;
?>
<table align="center" border="1">
<colgroup>
<col width=220>
<col >
<col >
<col >
<col >
<col >
</colgroup>
<tr class="encabezado">
<colgroup>
<col width=220> <col > <col > <col > <col > <col > <col >
</colgroup>
<tr>
<th>Nombre</th> <th>Rut</th> <th>Nacimiento</th> <th>Rango 1</th> <th>Rango 2</th> <th>Rango 1</th> >
</tr>
<?php
while ($row=mysql_fetch_array($resulta))
{
echo "<td><center>".$row["nombre"]."</center></td>";
echo "<td><center>".$row["rut"]."</center></td>";
echo "<td><center>".$row["fech"]."</center></td>";
echo "<td><center>".$row["rang1"]."</center></td>";
echo "<td><center>".$row["rang2"]."</center></td>";
echo "<td><center>".$row["rang3"]."</center></td>";

mysql_close($con);
?>

y no me da resultados me da solo los titulos de la tabla y la tabla sin ningun datos.

he puesto echo print_r($row) y me da valor 1 y mysql_num_rows($resulta) me da valor 0 y cuando hago que me muestre $query me muestra el dialogo para la consulta bien lo copio y pego en el mysql y si me entrega resultados. el $resulta me da Resource id #5.

Nose que le pasa no se como hacer un debugger en el paso que esta en $row
  #2 (permalink)  
Antiguo 13/03/2009, 10:56
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: me da query vacio, siendo que existe

Prueba no colocar rang1, rang3 y rang3 entre comillas, sino asi:

Código:
..."and rang1 ='".$_POST['rang1']."'" ...
  #3 (permalink)  
Antiguo 13/03/2009, 13:16
 
Fecha de Ingreso: marzo-2009
Mensajes: 41
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: me da query vacio, siendo que existe

sigue sin mostrarme el resultado.

una cosas que probe y que hace que sea mas extraño el asunto que si en el formulario lo dejo vacio sin restricciones me muestra todos los valores de la tabla (cosa que queria que hiciera) pero al ponerle una (cualquiera de estas) no muestra nada. .

Lo que me hace pensar que el problema esta en el $brut1 pero no veo cual.


------- editado --------
Lo Logre efectivamente era problema del query, tenia confundidos los ' por ' es que hay tipos de letras en la que se ven iguales ambos.

Última edición por exorton; 13/03/2009 a las 13:33
  #4 (permalink)  
Antiguo 13/03/2009, 13:26
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: me da query vacio, siendo que existe

Imprime la query, para ver como queda construida y asi podrás ver que está mal.
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 18:20.