Foros del Web » Programando para Internet » PHP »

sacar informacion de la base de datos

Estas en el tema de sacar informacion de la base de datos en el foro de PHP en Foros del Web. Hola amigos, tengo la siguiente consulta, necesito sacar una informacion de una base de datos y hacer que la muestre, pero necesito que ejecute un ...
  #1 (permalink)  
Antiguo 06/03/2009, 13:48
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
sacar informacion de la base de datos

Hola amigos, tengo la siguiente consulta, necesito sacar una informacion de una base de datos y hacer que la muestre, pero necesito que ejecute un filtro y que solo muestre los datos que tenga alguna terminacion definida, por ejemplo tengo la sigiente tabla

Cita:
juanes
casa
carros
planta
coumputadores
y que de esto solo me muestre las palabras terminadas en s, esas serian:
juanes
carros
computadores
se que usando expresiones regulares se puede hacer un filtro como este:
Código PHP:
$regExp1="/a\"(.*?)\"/is" ;
$file = ('$text');
preg_match_all($regExp1,$text,$a);
$count count($a[1]);
echo 
"<b>Number of Urls</b> = " .$count."<p>";
for (
$row 0$row $count $row++) {
echo 
$a[1]["$row"]."<br>";

se saca las palabras que inicien con la letra a, como seria para las letras que terminen en s y como seria para que los datos los tome de una bd ya que en este caso los toma de un texto, yo creo que seria de usar una expresion de este tipo:
Cita:
SELECT direccion FROM direc_http
ya lo intente pero no me funciono.
de antemano muchas gracias
  #2 (permalink)  
Antiguo 06/03/2009, 13:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: sacar informacion de la base de datos

Podría ser...
Código sql:
Ver original
  1. SELECT campos FROM tabla WHERE campo LIKE 'a%'
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 06/03/2009, 13:57
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: sacar informacion de la base de datos

que significa LIKE 'a%'
  #4 (permalink)  
Antiguo 06/03/2009, 14:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: sacar informacion de la base de datos

Más información:
http://sql.1keydata.com/es/sql-like.php
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 06/03/2009, 14:35
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Hola, y como hacer para que muestre lo contrario, por ejemplo si LIKE 'a%' me muestra las palabras que inician con A, como hacre que me muestre todas las palabras que no inicien con A

alguien alguna idea, y si es posible que sean en un conjunto como por ejemplo
Cita:
$x = array("a","s");
for($=0, i<2,i++){
SELECT campos FROM tabla WHERE campo LIKE '$x[$i]%'
}

Última edición por GatorV; 11/03/2009 a las 15:05
  #6 (permalink)  
Antiguo 11/03/2009, 15:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: sacar informacion de la base de datos

Pues usa NOT LIKE 'a%'.

Saludos.
  #7 (permalink)  
Antiguo 11/03/2009, 15:13
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: sacar informacion de la base de datos

si, con NOT LIKE 'a%' saca la informacion de la forma que yo quiero, pero en este caso cuando tengo en el Array 2 o mas palabras como en este caso
Cita:
$x = array("a","s");
for($=0, i<2,i++){
SELECT campos FROM tabla WHERE campo LIKE '$x[$i]%'
}
necesito que muestre la informacion solo en una ocaccion y no como hace en este momento de comparar la plimera palabra y me imprime todas las palabras que no inician con la primera palabra y cuando pasa a la segunda palabra, muestra las palabras que no tenia que mostrar en la primera busqueda, no se si me explico; necesito que la busqueda sea en una sola ocacion y que no muestre 2 o 3 palabras que no necesito
  #8 (permalink)  
Antiguo 11/03/2009, 15:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: sacar informacion de la base de datos

Pues si usas la sintaxis correcta no tienes problema:
Código php:
Ver original
  1. $x = array("a","s");
  2. foreach($x as $palabra) {
  3. $sQuery = "SELECT campos FROM tabla WHERE campo LIKE '$palabra%'";
  4. }

Saludos.
  #9 (permalink)  
Antiguo 11/03/2009, 15:23
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Perdon, cometi un error, al ejemplo que me referia en el caso anterior es el siguiente
Cita:
$x = array("a","s");
for($=0, i<2,i++){
SELECT campos FROM tabla WHERE campo NOT LIKE '$x[$i]%'
}
en este caso hace filtracion con la primera palabra y cuando coge la segunda palabra muestra lo que no no queriamos que muestre con la segunda palabra, en este momento voy a intentar con tu codigo GATORV a ver que resulta

concretamente mi ejemplo es el siguiente
Código PHP:
$sin2 = array ("com""ru");
for(
$i=0;$i<sizeof($sin2);$i++)
    {
    
$result4 mysql_query("SELECT direccion, fecha FROM direc_http WHERE direccion NOT LIKE '%$sin2[$i]' AND fecha>='$fmin' Order by 'fecha' DESC") or die ("no se ejecuto el Query");
    
$j=0;
    while(
$row=mysql_fetch_row($result4)){
        if (
$j%2==0){
            echo
"<tr BGCOLOR=\"#E6E6FA\">
              <td >
             $row[0]</td>     
             </tr>"
;
        }else{
            echo
"<tr BGCOLOR=\"#FFFFF0\">
             <td >
              $row[0]</td>     
              </tr>"
;
        }
    
$j++;
    }


Última edición por GatorV; 11/03/2009 a las 15:31
  #10 (permalink)  
Antiguo 11/03/2009, 15:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: sacar informacion de la base de datos

Si ves el código que te puse el problema es como expandes el valor dentro de tu query y por eso es mejor usar un foreach o en dado caso separar las comillas, le esto: http://www.forosdelweb.com/f18/como-...s-bien-588701/
  #11 (permalink)  
Antiguo 29/03/2009, 13:21
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: sacar informacion de la base de datos

Hola, no quiero iniciar nuevo tema ya que lo que pregunto en este momento es similar a lo anterior, cree el siguiente codigo pero no funciona, si alguien tiene alguna idea de como arreglarlo
Código PHP:
$fec1 date("Y-0$x-01 00:00:00");
$fec2 date("Y-0$x-31 00:00:00");
$result mysql_query("SELECT direccion, fecha FROM direc_http WHERE direccion LIKE '%.exe' OR direccion LIKE '%.exe' AND fecha BETWEEN '$fec1' AND '$fec2' Order by 'fecha' DESC") or die ("no se conecto a la base de datos"); 
salu2
  #12 (permalink)  
Antiguo 30/03/2009, 15:13
 
Fecha de Ingreso: abril-2008
Mensajes: 88
Antigüedad: 16 años
Puntos: 5
Respuesta: sacar informacion de la base de datos

creo que lo que tienes que hacer es poner fecha final al principio de los parametros del betwen y la fecha de inicio despues.
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 13:42.