Foros del Web » Programando para Internet » PHP »

Busqueda en Php usando foreach, mysql_fetch_array

Estas en el tema de Busqueda en Php usando foreach, mysql_fetch_array en el foro de PHP en Foros del Web. Buenas amigos, Estoy desarrollando un sistema de busqueda sencillo, empleando foreach para recorrer el arreglo, sin embargo estoy teniendo errores al momento de desplegar. Por ...
  #1 (permalink)  
Antiguo 07/11/2011, 15:21
 
Fecha de Ingreso: noviembre-2011
Mensajes: 2
Antigüedad: 12 años, 5 meses
Puntos: 0
Busqueda en Php usando foreach, mysql_fetch_array

Buenas amigos,

Estoy desarrollando un sistema de busqueda sencillo, empleando foreach para recorrer el arreglo, sin embargo estoy teniendo errores al momento de desplegar. Por lo que solicito una sugerencia y/o correccion. Estos son los codigos:

Código:
<?

$precios=$_POST['precio'];

//conexion a la BD

$con=mysql_connect("localhost", "root", "");

//Seleccion de la BD

mysql_select_db('residencia');

//Consulta a la Base de Datos

if (!isset ($_POST['send'])){

$consulta="SELECT * FROM `residencias` WHERE precio LIKE '%$precios%' GROUP BY precio DESC";

$sql=mysql_query($consulta, $con) ;

$found=false;

//Impresion de resultados

while($result=mysql_fetch_array($sql)){
	
	$found=true;
	
	foreach ($result as $nombre_campo){
		
		
	echo "<b>".$nombre_campo."</b> ";
	
	}
		
	if(!$found){echo "No se encontraron registros <br>";
}
}
}
?>
<input type="button" value="Regresar" name="back" onclick="history.back()">
Código:
<h1>Resultados de la Busqueda</h1>
<p><br><br>
</p>

<form action="index.php?page=buprecio" method=post>
Precio x Mes: <br /> <br />

<select name="precio"> 
<option value="1">Entre 100000 y 200000</option>	
<option value="2"> Entre 200000 y 300000 </option>	
<option value="3"> > 300000 </option>	

</select>

<input type="submit" value="Buscar" name="send" />

</form>
Gracias y saludos;

Última edición por zeonhack; 07/11/2011 a las 15:27
  #2 (permalink)  
Antiguo 07/11/2011, 15:37
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Busqueda en Php usando foreach, mysql_fetch_array

Hola Bienvenid@ al foro.

y por que colocas un foreach dendro de un while si ya usas un mysql_fetch_array porque no usa sus complementos para imprimir los valores

Te dejo este ejemplo te va a ayudar

Código PHP:
Ver original
  1. <?
  2. $precios=$_POST['precio'];
  3. //conexion a la BD
  4. $con=mysql_connect("localhost", "root", "");
  5. //Seleccion de la BD
  6. mysql_select_db('residencia');
  7. //Consulta a la Base de Datos
  8. if (!isset ($_POST['send'])){
  9.     $consulta="SELECT * FROM `residencias` WHERE precio LIKE '%$precios%' GROUP BY precio DESC";
  10.     $sql=mysql_query($consulta, $con) ;
  11.     $found=false;
  12.     if(mysql_num_rows($sql) == 0){
  13.         echo 'sin resultados';
  14.     }else{
  15.         //Impresion de resultados
  16.         while($result=mysql_fetch_array($sql)){
  17.             echo $result['tu_campo'];
  18.         }
  19.     }
  20. }
  21. ?>
  22. <input type="button" value="Regresar" name="back" onclick="history.back()">

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 07/11/2011, 15:41
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Busqueda en Php usando foreach, mysql_fetch_array

Por favor noten el valor de precio para la consulta MySQL
Código HTML:
Ver original
  1. <select name="precio">
  2. <option value="1">Entre 100000 y 200000</option>   
  3. <option value="2"> Entre 200000 y 300000 </option> 
  4. <option value="3"> > 300000 </option>  
  5.  


Código PHP:
Ver original
  1. $precios=$_POST['precio'];
  2. $consulta="SELECT * FROM `residencias` WHERE precio LIKE '$precios%' GROUP BY precio DESC";
  3.  
  4. $sql=mysql_query($consulta, $con) ;

El LIKE lleva un solo "%"
__________________
Mono programando!
twitter.com/eguimariano
  #4 (permalink)  
Antiguo 07/11/2011, 20:34
Avatar de punk-devil  
Fecha de Ingreso: febrero-2008
Ubicación: Tuxtla Gutiérrez, Chiapas, Mexico
Mensajes: 19
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Busqueda en Php usando foreach, mysql_fetch_array

Cita:
Iniciado por SirDuque Ver Mensaje
Por favor noten el valor de precio para la consulta MySQL
Código HTML:
Ver original
  1. <select name="precio">
  2. <option value="1">Entre 100000 y 200000</option>   
  3. <option value="2"> Entre 200000 y 300000 </option> 
  4. <option value="3"> > 300000 </option>  
  5.  


Código PHP:
Ver original
  1. $precios=$_POST['precio'];
  2. $consulta="SELECT * FROM `residencias` WHERE precio LIKE '$precios%' GROUP BY precio DESC";
  3.  
  4. $sql=mysql_query($consulta, $con) ;

El LIKE lleva un solo "%"
En desacuerdo de utilizar LIKE, debido a que si tenemos por ejemplo 1000000, lo cual es mayor que 300000, entonces apareceria como resultado de haber recibido "$_POST['precio']=1"...

Preferible utilizar operadores en la consulta, y/o un switch/case para construir la consulta:

Código PHP:
$precio=$_POST["precio"];
switch(
$precio){
    case 
'1':
        
$cond="precio < 200000";
    break;
    case 
'1':
        
$cond="precio > 200000 AND precio < 300000";
    break;
    case 
'3':
        
$cond="precio > 300000";
    break;
}
$query="SELECT * FROM `residencias` WHERE $cond  " 

Última edición por punk-devil; 07/11/2011 a las 20:36 Razón: Añadiendo datos para evitar confusion
  #5 (permalink)  
Antiguo 07/11/2011, 21:31
 
Fecha de Ingreso: noviembre-2011
Mensajes: 2
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Busqueda en Php usando foreach, mysql_fetch_array

Buenas amigos,

En efecto, sabia que con la colaboración de uds podría sacar adelante el script.

Tomé en cuenta sus recomendaciones y pues ya está funcionando bajo las necesidades que dispongo.

Gracias por la colaboración,

Saludos;

Etiquetas: foreach, mysql, registro, sql, busquedas
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:53.