Foros del Web » Programando para Internet » PHP »

Extraer más datos de la consulta

Estas en el tema de Extraer más datos de la consulta en el foro de PHP en Foros del Web. Hola buenas tardes, estoy haciendo una web de analisis clinicos. Resulta que he echo un aparatado donde apareceran todos los resultados clinicos. Dicho esto mi ...
  #1 (permalink)  
Antiguo 04/09/2016, 08:03
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Extraer más datos de la consulta

Hola buenas tardes, estoy haciendo una web de analisis clinicos.

Resulta que he echo un aparatado donde apareceran todos los resultados clinicos. Dicho esto mi idea es que saque los analisis de una base de datos "ya creada" y tenga dos formas de filtrarlos, una por abecedario y la otra con un buscador.

La primera parte para buscar por abecedario ya esta echa, queda tal que así:

CONECTAMOS A LA BD:

Código PHP:
Ver original
  1. <?php
  2.  
  3. // Conectando, seleccionando la base de datos
  4. $link = mysql_connect('oculto', 'oculto', 'oculto')
  5.     or die('No se pudo conectar: ' . mysql_error());
  6.  
  7. mysql_select_db('artde2') or die('No se pudo seleccionar la base de datos');
  8.  
  9.  
  10. ?>

ESTO ESTA EN UN <DIV>

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. $letras = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; #Puedes poner las letras que quieras
  5. $parte = str_split($letras);
  6.  
  7. $enlace = preg_replace("#(.*)#", "<a href=\"{$_SERVER['PHP_SELF']}?letra=\\1\">\\1</a>", $parte, 1);
  8. echo $enlaces = implode(" - ", $enlace)."</br>";
  9.  
  10. $tabla = "contenido"; #Nombre de la tabla en tu DB
  11. $campo = "strtitulo"; #Nombre del campo a buscar
  12. $pag = "perfil.php?usuario="; #Pagina a la que redigira con los resultados
  13.  
  14. ?>


ESTO EN OTRO <DIV>

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. if(in_array($_GET['letra'], $parte)) {
  5.  if(($dato = buscar_letra($_GET['letra'], $tabla, $campo, $msgerror))==0) echo $msgerror;
  6.  else {
  7.   $resultado = preg_replace("#(.*)#",  "<a href=\"{$pag}\\1\">\\1</a>", $dato, 1);
  8.  
  9.   echo $resultados = implode("</br>\n", $resultado);
  10.  }
  11. } else echo "Selecciona una letra para buscar usuarios que empiecen por esta";
  12.  
  13. function buscar_letra($_letra, $_tabla, $_campo, &$_error) {
  14.  $consulta = mysql_query("select * from contenido where strtitulo regexp '^(".strtoupper($_letra)."|".strtolower($_letra).")(.*)$'");
  15.  if(!mysql_num_rows($consulta)) {
  16.   $_error = "No hay registros que empiecen por {$_letra} en {$_tabla}.{$_campo}";
  17.   return false;
  18.  } else {
  19.   while($leer = mysql_fetch_array($consulta)) $ret[] = $leer[$_campo];
  20.   return $ret;
  21.  }
  22. }
  23.  
  24. ?>


El tema esta en que si me saca los resultados que empiecen por la "letra" "X" que selecciones y lo saca de "strtitulo".

Vale el problema es que necesito que si busque por abecedario en ese campo de la tabla, pero necesito que me saque dos campos más de esa misma tabla, por ejemplo (strcliente y strfecha) pero que la busqueda la haga solo del campo "
  #2 (permalink)  
Antiguo 04/09/2016, 08:55
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: Extraer más datos de la consulta

Supongo que has instalado INDICES FULL TEXT. Ademas no veo que uses WHERE en la consulta.
  #3 (permalink)  
Antiguo 04/09/2016, 09:09
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Extraer más datos de la consulta

Hola gracias por la respuesta.

No se que es indeces full text?. En la última parate si que hago el WHERE.
  #4 (permalink)  
Antiguo 04/09/2016, 10:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: Extraer más datos de la consulta

Debes poner esto:
Cita:
strtitulo regexp '^(".strtoupper($_letra)."|".strtolower($_letra).
en una variable. En la consulta debes poner variables por ejemplo de la forma

Cita:
select * from contenido where strtitulo = "'.$strtitulo.'"....."
Segundo: Cuando necesitas seleccionar ciertos registros pones la cláusula WHERE
Cita:
select * from contenido where strtitulo = "'.$strtitulo.'" AND fecha = "'.$fecha.'" AND ....."
Tercero: Para facilitar la busqueda y hacerla más real a un buscador, debes instalar en tu base de datos, en alguna columna que estas usando para buscar, los indices full text (Tablas MySam solamente).
https://dev.mysql.com/doc/refman/5.6...ext-index.html
  #5 (permalink)  
Antiguo 04/09/2016, 14:33
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Extraer más datos de la consulta

Muchisimas gracias, voy a ponerlo en practica y experimentar.

Etiquetas: fecha, mysql, registro, select, sql, tabla, usuarios
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 20:14.