PHP - Unir 2 variables en una consulta

   
Vista:

Unir 2 variables en una consulta

Publicado por Samuel (5 intervenciones) el 19/08/2016 21:40:16
Hola:
Escribo por la siguiente duda. Quiero hacer una consulta de Mysql en un script de PHP, utilizando 2 variables en un LIKE.

En primer lugar realizo una consulta, y de ahi obtengo el dato para una variable, despues en una segunda consulta busco un registro en base a un campo varchar que en su contenido tenga especificamente el texto que guarde en una variable.

Aqui el codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$c=mysql_connect("localhost","root");
mysql_select_db("herbo");
$consulta="SELECT p.product_id,d.name,d.description,pc.category_id,p.image,p.price FROM `y2ncg_mijoshop_product` as p
INNER JOIN `y2ncg_mijoshop_product_description` as d ON d.product_id=p.product_id 
INNER JOIN `y2ncg_mijoshop_product_to_category` as pc ON pc.product_id=p.product_id 
INNER JOIN `y2ncg_mijoshop_category_description` as cd ON cd.category_id=pc.category_id 
WHERE p.quantity > 0 
AND d.language_id=2
AND p.status=1
AND p.product_id=38
GROUP by p.product_id";
 
$r=mysql_query($consulta);
$d=mysql_num_rows($r);
if($d>0){
	while ($registro=mysql_fetch_row($r)){
 
	 		$query="product_id=".$registro[0];//Aqui Guardo la variable que viene de la primera consulta
	 		echo $query;//me cercioro que guardo dato enviandolo a pantalla
 
	 		//Esta es la Segunda consultan el like utilizo la variable $query 
			 			$consulta2="SELECT keyword FROM `y2ncg_mijoshop_url_alias`
                       WHERE query LIKE  '%$query%'
                       AND language_id=2";
 
                       $r2=mysql_query($consulta2);
                       $d2=mysql_num_rows($r2);
 
                       if($d2>0){
                       echo $d2;//Me cercioro si hay registros, pero no saca nada
                       while ($registro2=mysql_fetch_row($r2)){
                       echo $registro2['0'];//Por logica aqui tampoco saca nada
 
					   }
					   }
 
			}
			}
mysql_close();
 
?>

Gracias de antemano si alguin tiene un dato
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

Unir 2 variables en una consulta

Publicado por kip (566 intervenciones) el 19/08/2016 22:19:22
Hola, que error te d al ejecutar aquel codigo que posteaste?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Unir 2 variables en una consulta

Publicado por Samuel (5 intervenciones) el 19/08/2016 22:59:57
Hola:

Simplemente no me trae datos, como si no tomara en cuenta el LIKE.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip

Unir 2 variables en una consulta

Publicado por kip (566 intervenciones) el 19/08/2016 23:29:43
No es que no tome el LIKE, la variable que colocas como parametro en el LIKE no es la adecuada, la estas definiendo mal, mira:

1
2
3
4
5
6
7
$query="product_id=".$registro[0];//Aqui Guardo la variable que viene de la primera consulta
echo $query;//me cercioro que guardo dato enviandolo a pantalla
 
//Esta es la Segunda consultan el like utilizo la variable $query 
$consulta2="SELECT keyword FROM `y2ncg_mijoshop_url_alias`
WHERE query LIKE '%$query%'
AND language_id=2";

Tu codigo dice que $query es igual al string 'product_id=' concatenado con el resultado de tu anterior consulta que podria ser un numero, por ejemplo 4, en ese caso:

1
2
3
$consulta2="SELECT keyword FROM `y2ncg_mijoshop_url_alias`
WHERE query LIKE '%product_id=4%'
AND language_id=2";;

Tu campo query de tu tabla `y2ncg_mijoshop_url_alias` debe contener entonces un dato que se asemeje a product_id=4, verdad?
Entonces no te muestra nada porque quizas no encuentre nada parecido en aquel campo!!

Lo que deberias es definir mejor el contenido de la variable $query, que deseas buscar? por que colocas product_id= ?

Cuentanos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Unir 2 variables en una consulta

Publicado por Samuel (5 intervenciones) el 20/08/2016 00:24:09
Hola:

Gracias por responder. Sabes ya funciono el codigo, solo quite de la segunda consulta la parte de AND language_id=2, revise los datos y con el registro que probe no tenia en language_id el 2, solo tenia el 1.

Lo que queria hacer con esta consulta es traer datos de 5 tablas, 4 de ellas tenian relacion con el campo product_id, la quinta tabla no tiene el campo product_id, por lo que hice la segunda consulta tomando el dato de product_id y juntandolo con un texto que iba a ser casi constante, y lo que mas se acercaba para obtener el dato que me faltaba era un campo de texto cuyo formato es "product_id=id del producto",.

Ejemplo, en el caso del producto 38 ese campo dice "product_id=38".

Agradezco tus respuestas y pueden dar por cerrado este hilo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar