Comunidad de diseño web y desarrollo en internet online

Por que no me acepta la variable en WHERE titulo LIKE '$var' OR titulo

Citar            
MensajeEscrito el 24 Mar 2011 04:09 pm
:( Por que no me acepta la variable en WHERE titulo LIKE '$var' OR titulo LIKE '$var2'.

La idea es buscar en ese mismo campo con 2 palabras diferentes o mas

si coloco where nombre like '%{$variable1}%' OR nombre like '%{$variable2}%'

Solo debuelbe el ultimo or like que ponga pueden ser 10 mas da igual solo ara caso de el ultimo order by like

si es con letra solamente sin $variables este si funciona dandome asi varios resultados con distintas palabras en el mismo campo muestro...


Solo me a funcionado asi pero no es lo que quiero ya que no estoy mandando nada solo es una prueba:

Código PHP :

Código PHP:
mysql_query(" select *  from  tabla where nombre like 'palabra1' OR nombre like 'palabra2' ");

 // y no asi como es que quiero con variables o usando un array dentro digamos asi:

mysql_query(" select *  from  tabla where nombre like '%{$variable1}%' OR nombre like '%{$variable2}%' ");

//no acepta las variables para buscar los dos


o este usando arrays tampoco funciona:

mysql_query(" select *  from  tabla where nombre like '%{".$variable1[1][0]."}%' OR nombre like '%{".$variable1[1][0]."}%' ");  



que podria hacer ? :shock:


Esto es muy importante ruego su ayuda gracias. por todo. :oops:

Por rapblack

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 Mar 2011 09:40 pm
'select * from tabla where nombre like "%'.$variable.'%" or nombre like "%'.$variable2.'%"';

funcionará asi?

Por sebifrost

61 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Mar 2011 10:29 pm
tienes este error

Código PHP :

mysql_query(" select *  from  tabla where nombre like '%{".$variable1[1][0]."}%' OR nombre like '%{".$variable1[1][0]."}%' ");   

lo correcto es

Código PHP :

mysql_query(" select *  from  tabla where nombre like '%".{$variable1[1][0]}."%' OR nombre like '%".{$variable1[1][0]}."%' ");   

y no usas variables globales no?
en la primera linea de tu codigo pon esto

Código PHP :

<?php
error_reporting(E_ALL);
//el resto de tu codigo

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Mar 2011 11:00 pm
Lo probe no hay error con error reporting todo es correcto , lo que me dices de

Código PHP :

mysql_query(" select *  from  tabla where nombre like '%".{$variable1[1][0]}."%' OR nombre like '%".{$variable1[1][0]}."%' ");    




-No funciona debuelbe absolutamente nada, probe quitandole las corcheas y solo hace caso de variable 2 no de variable uno , si lo ago por defecto sin variables devuelbe los dos ,

-Esto tiene solucion?

Por rapblack

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 Mar 2011 11:02 pm
EMM permitame aclarar que aqui veo un pequeño error en mi escritura pone '%".{$variable1[1][0]}."%' OR nombre like '%".{$variable1[1][0]}."%'

pero es :

'%".{$variable1[1][0]}."%' OR nombre like '%".{$variable2[2][0]}."%'

Por rapblack

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Mar 2011 02:14 pm
Perdon, pero que es $variable1 y $variable2?? Son strings, arrays, objetos? Que valor tienen si le das "echo" a esas variables. De eso depende tu solucion. :)

Por edge

57 de clabLevel



Genero:Masculino  

Software developer

chrome
Citar            
MensajeEscrito el 25 Mar 2011 04:21 pm
Para entender esto mas facil piena que son dos variables con contenido .

$variable1="hola" ;
$variable2="adios" ;

o
$variable1=$_GET['palabra1'] ;
$variable2=$_GET['palabra2'] ;

Lo de los arrays lo puse por si abia diferencia pero no la hay sigue siendo el mismo problema para ambos.

Podemos solucionar esto, creo que podemos.espero lo entiendas ahora venga vamos a ello gracias por tu interes.

Por rapblack

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Mar 2011 04:23 pm
echo dentro de mysql_query (" select * from tabla Where nombre Like '%".echo {$variable1[1][0]}."%' OR nombre like '%"..echo {$variable1[1][0]}."%' ");

Eso no creo que funcione.

Por rapblack

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 Mar 2011 10:18 am
Prueba asi...

Código PHP :

$query = " select  * from  tabla where nombre like '%$variable1%' OR nombre like '%$variable2%' ";
echo $query; //opcional
mysql_query($query);


Saludos

Por edge

57 de clabLevel



Genero:Masculino  

Software developer

chrome
Citar            
MensajeEscrito el 31 Mar 2011 07:08 pm
:shock: tampoco ya lo tenia asi , solo hace caso de variable2 no de variable1 , solo por que son variables , que mierda, si es texto si funciona con los dos , esto es un calvarioooo :( :(

Por rapblack

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Abr 2011 12:43 am
Prueba con el echo....

El no te dice que hagas echo, y eso es tu solución.

Lo que el dice, es que si haces un echo fuera de tu sentencia SQL, puedes saber si tu variable esta llegando con contenido o no.

fíjate que EDGE, te esta poniendo

Código PHP :

echo $query;


fíjate lo que se imprime en tu navegador, para ver si esta imprimiendo ambas variables correctamente.

Saludos

Por jOina

Claber

359 de clabLevel

2 tutoriales

 

Guadalajara, Mexico

firefox
Citar            
MensajeEscrito el 02 Abr 2011 05:47 am
si que lo esta asiendo lo probe y lo imprime perfectamente , pero sigue sin hacer caso como expliqe mas arriba.

Por rapblack

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 Abr 2011 04:29 am
creo que asi no vamos a llegar a ningun lado bueno podrias ser mas explicito podrias poner el codigo en si que stas usando la sentencia sql y como recuperas los valores luego el esquema de la tabla de la cual estas haciendo la consulta luego muestras que resultado deberia botar y que resultado te esta botando para asi reproducir el error que cometes si es que lo hay o podria ser un error de versiones mysql y esas cosas.

es molesto ver post sin respuesta alguna

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 03 Abr 2011 08:32 pm
Este es el codigo:

Código PHP :



/*
$variable1="maria";
$variable2="jose";
*/


//esta cosulta la realizo desde un array que recoge las palabras y las divido en 2  
//realizando dos consultas .

$variable1=  $chars2[1][0];
$variable2=  $chars2[2][0];



include("consulta.php");



consulta.php :

Código PHP :





<? 

$query_busca3 = "SELECT * FROM tabla  Where nombre LIKE  '%$variable1%'  OR  nombre LIKE  '%$variable2%'    ";

echo $query_busca3; //opcional 
$query_buscalo3= mysql_query($query_busca3,$link)or die(" error aqui ".mysql_error());




$found3=false;
while($result_busca3 =mysql_fetch_assoc($query_buscalo3)){

$found3=true;

echo $result_busca3['nombre'];

 }

if(!$found3){echo "NADA de nada";}

Por rapblack

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 Abr 2011 09:08 pm
tu consulta esta bien el error debe darse en lo que retorna las variables 1 y 2 recuerda formarlas correctamente osea
remplaza

Código PHP :

$query_busca3 = "SELECT * FROM tabla  Where nombre LIKE  '%$variable1%'  OR  nombre LIKE  '%$variable2%'    ";

Código PHP :

$query_busca3 = "SELECT * FROM tabla  Where nombre LIKE  '%".  mysql_real_escape_string($variable1) ."%'  OR  nombre LIKE  '%" . mysql_real_escape_string($variable2) . "%'    ";

y tambien fijate que cosa es lo que genera $variable1 y $variable2 ya que el like creo que es sensible a las mayusculas y el tipo de codificacion o acentos o ese tipo de cosas

Código PHP :

echo '<pre>';
var_dump($variable1);
var_dump($variable2);
echo '</pre>';
$query_busca3 = "SELECT * FROM tabla  Where nombre LIKE  '%".  mysql_real_escape_string($variable1) ."%'  OR  nombre LIKE  '%" . mysql_real_escape_string($variable2) . "%'    ";

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 03 Abr 2011 10:14 pm
//esto devuelbe var_dump

Código PHP :

echo '<pre>'; 
var_dump($variable1); 
var_dump($variable2); 
echo '</pre>'; 


string(9) "jose"
string(4) "maria"

//y solamente da como resultado maria osea $variable2

¿HAs comprovado y te salen los dos?

A mi solo me sale maria puse esto lo que dices y nada de nada .

Código PHP :


$query_busca3 = "SELECT * FROM tabla  Where nombre LIKE  '%".  mysql_real_escape_string($variable1) ."%'  OR  nombre LIKE  '%" . mysql_real_escape_string($variable2) . "%'    "; 


Por rapblack

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 04 Abr 2011 03:50 am
ok mira hz esto entras al phpmyadmin y ejecutas la sentencia SQL directamente en su sql pegando tal y como te retorna la variable $query_busca3;

Código PHP :

$query_busca3 = "SELECT * FROM tabla  Where nombre LIKE  '%".  mysql_real_escape_string($variable1) ."%'  OR  nombre LIKE  '%" . mysql_real_escape_string($variable2) . "%'    ";  
echo "<h1>$query_busca3</h1>";

y deberia coincidir con el resultado que te lanza php

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 04 Abr 2011 06:15 pm
uhmm.. ya ahy no me meto de sql y tocar phpmyadmin es lo que menos hago nunca quiero arruinar la bd ni mi tabla tieen demasiado contenido y si meto la pata me tiro de un puento no es broma.

Por rapblack

8 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.