Foros del Web » Programando para Internet » PHP »

¿Por que sera?

Estas en el tema de ¿Por que sera? en el foro de PHP en Foros del Web. Hola amigos, por que sera que cuando quiero recoger registros de mi base de datos, segun un valor numerico no me los devuelve o lo ...
  #1 (permalink)  
Antiguo 21/02/2010, 18:22
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 11 años, 3 meses
Puntos: 2
Exclamación ¿Por que sera?

Hola amigos,

por que sera que cuando quiero recoger registros de mi base de datos, segun un valor numerico no me los devuelve o lo hace solo cuando vale 10??

Me exlico mejor, tengo en mi base guardados urls, que entres sus campos tambien tengo la informacion de su pagerank, y cuando hago la consulta sql para extraer segun un pagerank elegido, no lo hace o solo lo ace para el valor igual a 10.

Aqui cuando gao la consulta:

Código PHP:
Ver original
  1. $url = "SELECT * FROM sitios WHERE keywords LIKE '%$_POST[referencia]%' AND pageRank = '$_POST[pagerank]' ";
  2. $extraer = mysql_query($url);

que me pueden decir???
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #2 (permalink)  
Antiguo 21/02/2010, 18:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: ¿Por que sera?

Cita:
Iniciado por tonchii Ver Mensaje
que me pueden decir???
No mucho. El problema es que no sabemos que te devuelve la consulta, hazla y pega aquí lo que te trae la consulta, también te sugiero que postees la estructura de la tabla en la base de datos para ver como la hiciste. También te sugiero que hagas un var_dump a $_POST para ver que información tienen esas variables.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 21/02/2010, 18:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 11 años, 5 meses
Puntos: 5
Respuesta: ¿Por que sera?

no se si sera por eso pero la consulta la tienes mal hecha... te faltan ()
y luego tendrias q recorrer la consulta no igualarla como haces algo asi

$url = mysql_query("SELECT * FROM sitios WHERE keywords LIKE '%$_POST[referencia]%' AND pageRank = '$_POST[pagerank]' ") or die ("no selecciona datos");

while ("$algo=mysql_fetch_array($url))
{
echo $algo
}
prueba si te muestra algo asi.
  #4 (permalink)  
Antiguo 21/02/2010, 18:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: ¿Por que sera?

Cita:
Iniciado por rrecarte Ver Mensaje
no se si sera por eso pero la consulta la tienes mal hecha... te faltan ()
y luego tendrias q recorrer la consulta no igualarla como haces algo asi

$url = ("SELECT * FROM sitios WHERE keywords LIKE '%$_POST[referencia]%' AND pageRank = '$_POST[pagerank]' ") or die ("no selecciona datos");

while ("$algo=mysql_fetch_array($url))
{
echo $algo
}
prueba si te muestra algo asi.
No es necesario los parentesis ya que el mysql_query lo esta recorriendo en otra variable. Y el or die() debe usarlo despues del mysql_query.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 21/02/2010, 18:37
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: ¿Por que sera?

Bien, mira hice el var_dump a $_POST y me devuelve string(1) "2", osea q si se envia un valor.
No me devuelve nada, ese es el tema. Tengo hecho para que si los resultados son 0 (con un mysql_num_rows(); ), y me dice eso, que no se obtuvieron resultados.
La estructira de la tabla es :

Código SQL:
Ver original
  1. CREATE TABLE `sitios` (
  2.   `id` BIGINT(7) NOT NULL AUTO_INCREMENT,
  3.   `url` CHAR(100) DEFAULT NULL,
  4.   `titulo` VARCHAR(100) DEFAULT NULL,
  5.   `descripcion` text,
  6.   `keywords` text,
  7.   `pageRank` VARCHAR(2) DEFAULT NULL,
  8.   KEY `id` (`id`)
  9. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=77 ;
  10.  
  11. --
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #6 (permalink)  
Antiguo 21/02/2010, 18:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: ¿Por que sera?

Pero solo muestra un dato en vez de dos. ¿Qué te trae referencia y qué te trae pagerank? También usa la función mysql_error a ver si te trae algún error la consulta.
Código PHP:
Ver original
  1. mysql_query("aqui va tu consulta") or die(mysql_error());
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 21/02/2010, 18:46
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: ¿Por que sera?

Haciendo una busqueda con la palabra web, el var dump me devuelve string(3) "web" string(1) "2".
Voy a probar haber si arroja algun error
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #8 (permalink)  
Antiguo 21/02/2010, 18:48
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: ¿Por que sera?

No me devuelve ningun error :S
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #9 (permalink)  
Antiguo 21/02/2010, 18:50
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 10 años
Puntos: 3
Respuesta: ¿Por que sera?

¿No será que Pagerank es varchar en vez de entero?, digo, no vaya a ser cosa
  #10 (permalink)  
Antiguo 21/02/2010, 18:52
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 10 años
Puntos: 3
Respuesta: ¿Por que sera?

Ah otra cosa, los valores dentro de los $_POST[] ¿no llevan comillas?.
  #11 (permalink)  
Antiguo 21/02/2010, 18:52
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: ¿Por que sera?

No te entendi Fleon, me puedes explicar mejor??
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #12 (permalink)  
Antiguo 21/02/2010, 18:52
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: ¿Por que sera?

Cita:
Iniciado por Fleon Ver Mensaje
Ah otra cosa, los valores dentro de los $_POST[] ¿no llevan comillas?.
No llevan comillas, si estan dentro de comillas
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #13 (permalink)  
Antiguo 21/02/2010, 18:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: ¿Por que sera?

Podrías hacer una consulta con todos los valores en esa tabla y postear que te trae, me refiero a que usando por ejemplo phpMyAdmin escribas esto
Código MySQL:
Ver original
  1. SELECT * FROM sitios
Escribe luego la información que te trae.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #14 (permalink)  
Antiguo 21/02/2010, 18:56
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: ¿Por que sera?

Me trae toda la informacion, como es previsto. Con el pagerank incluido :P
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #15 (permalink)  
Antiguo 21/02/2010, 18:59
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 10 años
Puntos: 3
Respuesta: ¿Por que sera?

Insito en lo de las comillas:

Código PHP:
Ver original
  1. ...keywords LIKE '%$_POST["referencia"]%' AND pageRank = '$_POST["pagerank"]'
  #16 (permalink)  
Antiguo 21/02/2010, 19:03
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: ¿Por que sera?

Eso de las comillas no es asi, lo probe y me da error
__________________
Por que solo seremos dueños de aquello que creemos y amemos
  #17 (permalink)  
Antiguo 21/02/2010, 19:09
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 10 años
Puntos: 3
Respuesta: ¿Por que sera?

Cita:
Iniciado por tonchii Ver Mensaje
Eso de las comillas no es asi, lo probe y me da error
pregunta: ¿esos valores son captados desde el url?, si es asi puedes usar $_REQUEST, sino, tienes dos formas de intentarlo:

1. Con variables:

$Key = $_POST["referencia"];
$rank = $_POST["pagerank"];

1.
Código PHP:
Ver original
  1. ...keywords LIKE '%$key%' AND pageRank = '$rank'

2. de esta manera:

1.
Código PHP:
Ver original
  1. ...keywords LIKE '%$_POST[\"referencia\"]%' AND pageRank = '$_POST[\"pagerank\"]'

Pues no se me ocurre de otra
  #18 (permalink)  
Antiguo 21/02/2010, 19:43
Avatar de tonchii  
Fecha de Ingreso: noviembre-2008
Mensajes: 159
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: ¿Por que sera?

Bueno nada de lo que he probado ha funcionado, pero como se me conocode por mi ingenio, jajajaja, hice algo que le equivale.

Defini :
Código PHP:
Ver original
  1. $desde = $_POST['pagerank'] - 1;
  2. $hasta = $_POST['pagerank'] + 1;
antes de la consulta, y en la consulta puse:
Código SQL:
Ver original
  1. AND pageRank > '$desde' AND pageRank < '$hasta'
.

Ha funcionado perfectamente , gracias por todo.
__________________
Por que solo seremos dueños de aquello que creemos y amemos

Etiquetas: Ninguno
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:16.