Foros del Web » Programando para Internet » PHP »

Como recorrer todos campos de una misma tabla

Estas en el tema de Como recorrer todos campos de una misma tabla en el foro de PHP en Foros del Web. Estoy creando un buscador personalizado, pero este debe de funcionar de la siguiente forma. Tengo una tabla y los registros: Cada registro tiene que compararse ...
  #1 (permalink)  
Antiguo 17/06/2011, 18:32
 
Fecha de Ingreso: marzo-2010
Mensajes: 432
Antigüedad: 14 años, 8 meses
Puntos: 11
Como recorrer todos campos de una misma tabla

Estoy creando un buscador personalizado, pero este debe de funcionar de la siguiente forma.

Tengo una tabla y los registros:

Cada registro tiene que compararse con una palabra que ingresa el usuario, quedar asi:

select @ from MiTabla
registro_1 like %minombre% or
registro_2 like %minombre% or
registro_3 like %minombre% or
registro_4 like %minombre% or
registro_5 like %minombre% or
registro_6 like %minombre%

Tengo estos registros, pueden ser desde 1 hasta n registros.


MiTabla_1
registro_1
registro_2
registro_3
registro_4
registro_5
registro_6

MiTabla_2
registro_1
registro_2


eso porfavor...

uso:
PHP 5
MySQL 5
S.O: Windows XP

Código PHP:
Ver original
  1. <?php
  2.  
  3. $link=conexion();
  4.  
  5. $conn = "select * from MiTabla_1";
  6. $res = mysql_query($conn, $link);
  7.  
  8.  
  9. while($row = mysql_fetch_array($res))
  10. {  
  11.     $micampo1 = $row[micampo1];
  12.  
  13.     // Es aqui que no logro hacer.
  14.     echo "$micampo1";
  15.    
  16.     $array = array($micampo1); 
  17.    
  18.     foreach ($array as $i => $value) {
  19.     echo "$array[$i]";
  20.    
  21.     $conn2 = "select * from MiTabla_1 where  registro_[$i] = $array[$i]";  
  22.    
  23.         /*
  24.         $conn2 = "select * from MiTabla_1 where
  25.         registro_1 = $registro_1 and
  26.         registro_2 = $registro_2 and
  27.         registro_3 = $registro_3 and
  28.         registro_4 = $registro_4 and
  29.         registro_5 = $registro_5 and
  30.         registro_6 = $registro_6 and   
  31.         "; 
  32.         */ 
  33.     }  
  34. }
  35.  
  36. ?>
__________________
Libro de HTML 5 + codigo fuente bajar aqui.
  #2 (permalink)  
Antiguo 17/06/2011, 19:22
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: Como recorrer todos campos de una misma tabla

creo que podrias cambiarlo por este:
$micampo1 = $row['micampo1'];
saludos
  #3 (permalink)  
Antiguo 17/06/2011, 19:43
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas - Venezuela
Mensajes: 52
Antigüedad: 13 años, 8 meses
Puntos: 6
Sonrisa Respuesta: Como recorrer todos campos de una misma tabla

Código SQL:
Ver original
  1. SELECT MiTabla.campoAcomparar FROM MiTabla WHERE MiTabla.campoAcomparar LIKE '%minombre%'

Por definición un LIKE es un FULL SCAN sobre las tablas... se debe usar SOLO si eso es lo que se quiere ya que tiene un alto costo en las consultas

El LIKE te recorrerá toda la tabla completa comparando registro por registro el campo contra el valor que le estas dando.

Eso te devolverá un resultset que puedes recorrer luego con los resultados.
  #4 (permalink)  
Antiguo 17/06/2011, 20:41
 
Fecha de Ingreso: marzo-2010
Mensajes: 432
Antigüedad: 14 años, 8 meses
Puntos: 11
Respuesta: Como recorrer todos campos de una misma tabla

Cita:
Iniciado por luis_green Ver Mensaje
Código SQL:
Ver original
  1. SELECT MiTabla.campoAcomparar FROM MiTabla WHERE MiTabla.campoAcomparar LIKE '%minombre%'

Por definición un LIKE es un FULL SCAN sobre las tablas... se debe usar SOLO si eso es lo que se quiere ya que tiene un alto costo en las consultas

El LIKE te recorrerá toda la tabla completa comparando registro por registro el campo contra el valor que le estas dando.

Eso te devolverá un resultset que puedes recorrer luego con los resultados.
oooh genial gracias luis_green ..
__________________
Libro de HTML 5 + codigo fuente bajar aqui.

Etiquetas: campos, recorrer, tabla
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:41.