Foros del Web » Programando para Internet » PHP »

consulta sql con variable en codigo php

Estas en el tema de consulta sql con variable en codigo php en el foro de PHP en Foros del Web. Muy buenas, llevo todo el dia intentando resolver un problemilla que tengo con sql en php. la cuestion es que no hay manera de hacer ...
  #1 (permalink)  
Antiguo 21/03/2010, 15:42
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
consulta sql con variable en codigo php

Muy buenas, llevo todo el dia intentando resolver un problemilla que tengo con sql en php. la cuestion es que no hay manera de hacer que esto me funcione. Pongo el codigo:

<?php
$param=the_title();
$sql="SELECT DISTINCT post_title, comment_count, guid, post_date
FROM wp_posts WHERE post_title LIKE '%".$param."%'
ORDER BY comment_count DESC
LIMIT 20;";
echo $param;
echo $sql;
$results = $wpdb->get_results($sql);
?>

param almacena una cadena, que se que se almacena porque luego lo muestro con echo, pero no hay forma de que se una a la sentencia sql. Me aparece un espacio en blanco, y he probado mil formas. poniendo con comillas simples toda la sentencia, el like con comillas simples y dobles....ya no se que hacer.
el problema esta aqui: '%".$param."%' y he probado con todo tipo de comillas. Lo gracioso es que si pongo la funcion the_title() directamente si me aparece la cadena, pero la muestra justo antes de imprimir $sql. No entiendo nada, soy nuevo con php.
Ayuda por favor. Gracias y un saludo
  #2 (permalink)  
Antiguo 21/03/2010, 15:46
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: consulta sql con variable en codigo php

has un var_dump($param); para ver que tiene la variable, es posible que la misma contenga caracteres especiales que afectan al interprete sql.

PD: pide un moderador para que mueva el post al foro correspondiente
  #3 (permalink)  
Antiguo 21/03/2010, 15:49
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: consulta sql con variable en codigo php

Hola mayco, gracias por tu respuesta. Si la cuestion es que no me muestra $sql completa. Al llegar a la parte de echo $sql me muestra toda la cadena, pero donde debe aparecer el contenido no sale nada....aparece en blanco, no tiene nada que ver con sql de momento. De echo la parte de echo $param si me devuelve la cadena correcta, pero no consigo que se concatene con el resto de la consulta.No se si me he explicado.

pd: nunca he hecho nada de eso de ponerme en contacto con un moderador. como lo hago? abajo en contacta?
  #4 (permalink)  
Antiguo 21/03/2010, 15:54
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola preludeofcommonsense

Deberías poner tus mensajes en el foro que más se adapte a tu duda. Muevo tu tema al foro de PHP desde Web general.

Saludos,
  #5 (permalink)  
Antiguo 21/03/2010, 15:57
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: consulta sql con variable en codigo php

Muchisimas gracias!! :)
  #6 (permalink)  
Antiguo 21/03/2010, 16:02
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: consulta sql con variable en codigo php

tienes registers globals activo?, pues es recomendable desactivarlo para asegurar el origen de $param, si es por GET, POST o COOKIE, deberías postear que te devuelve exactamente $sql, ya que "a ciegas" es difícil ayudarte
  #7 (permalink)  
Antiguo 22/03/2010, 03:46
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: consulta sql con variable en codigo php

buenas, pues los resultados son los siguientes:

echo $param ---->Conciertos
echo $sql ---->SELECT DISTINCT post_title, comment_count, guid, post_date FROM wp_posts WHERE post_title LIKE '%%' ORDER BY comment_count DESC LIMIT 20;

y donde pone LIKE deberia aparecer justamente LIKE '%Conciertos%'

pero como veis aparece en blanco... por otro lado si pongo la funcion the_title() directamente en la asignacion de la cadena a $sql si me imprime la cadena en echo $sql, pero de la siguiente manera:

ConciertosSELECT DISTINCT post_title, comment_count, guid, post_date FROM wp_posts WHERE post_title LIKE '%%' ORDER BY comment_count DESC LIMIT 20;

Es decir, me imprime la variable al principio.
  #8 (permalink)  
Antiguo 22/03/2010, 03:55
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: consulta sql con variable en codigo php

acabo de hacerle un strlen($param) en la parte del like y me dice que es 0... entonces el problema esta en la asignacion del principio, con the_tittle().
  #9 (permalink)  
Antiguo 23/03/2010, 03:26
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: consulta sql con variable en codigo php

Hola buenas, sigo mirando el asunto y el problema es que no me asigna correctamente el valor a las variables. He intentado varios metodos. El ultimo que se me ha ocurrido es este...

<textarea type="text" name="nombre" style="visibility:hidden; width:0px; height:0px">"DISTINCT post_title, comment_count, guid, post_date,post_parent
FROM wp_posts WHERE post_title LIKE '%<?php the_title()?>%'
ORDER BY comment_count DESC
LIMIT 20";</textarea>
<?php

$sql="SELECT ". $_POST['nombre'];
echo $sql; ?>


Donde recojo casi toda la consulta desde un textarea, pero al asignarla a $sql me aparece en blanco. Alguien sabe solucionar esto please!!!
  #10 (permalink)  
Antiguo 06/04/2010, 11:50
 
Fecha de Ingreso: mayo-2009
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: consulta sql con variable en codigo php

Hola, siento no poder ayudarte, de hecho me gustaría saber si has logrado hacer lo que querías ya que tengo un problema parecido.
Gracias!

Etiquetas: sql, variables
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:31.