La cláusula LIKE no funciona debido a la variable php

este es mi código... he intentado echo the $sql pero se nota'%Search%'... pero quiero usarlo como $Search .. ayuda por favor...

A continuación se muestra mi código completo para la búsqueda...

if(isset($_POST['search']))

 {

$search=$_POST['search'];

$criteria=$_POST['criteria'];

$table='alumni';

mysql_real_escape_string($search);

if($criteria=='ALL')

{

$sql="SELECT UNAME FROM `alumni` ";

$result=mysql_query($sql); 

if (!$result) {

die('Invalid query: ' . mysql_error());

}

while ($row=mysql_fetch_array($result))

{

echo"<tr><td><a>".$row['UNAME']."</a></td></tr>"; 

}

}

                                    if($criteria=='UNAME' || $criteria=='FNAME' || $criteria=='BATCH')

{

//echo $criteria;

$sql="SELECT UNAME FROM `alumni` WHERE ".$criteria." LIKE '%".$search."%'";

//echo $sql;

$result=mysql_query($sql); 

if (!$result) {

die('Invalid query: ' . mysql_error());

}

while ($row=mysql_fetch_array($result))

{

echo"<tr><td><a>".$row['UNAME']."</a></td></tr>"; 

}

}


}

?>

preguntado el 16 de abril de 13 a las 08:04

No utilice mysql_* funciones, están en desuso, use mysqli_* en lugar de. -

use mysqli_ o PDO en lugar de la extensión mysql_ ya que está obsoleta y es menos segura.

obtienes la cadena 'Buscar' si imprimes $buscar var? ¿Cómo se ve tu sql si, por ejemplo, pones el criterio 'FNAME' y buscas 'texto'? -

@BojanKovacevic... muestra los nombres de usuario con respecto a los criterios de búsqueda... el código anterior funciona bien para $criterios==TODOS... ¡¡no puede mostrar ningún resultado para la siguiente condición if...!! por favor ayuda..!! -

2 Respuestas

Al probar el código anterior, parece que no hay nada malo, si pasa search=Test usted obtiene:

SELECT UNAME FROM `alumni` WHERE FNAME LIKE '%Test%'

Si siempre estás recibiendo...

SELECT UNAME FROM `alumni` WHERE FNAME LIKE '%Search%'

...sin importar el valor que complete en su formulario de búsqueda, sugeriría que hay un problema con el funcionamiento de ese formulario o con la forma en que se agrupan los datos de la publicación. El código que ha publicado anteriormente, aunque está bastante desactualizado, funciona como cabría esperar de un código que busca en una base de datos.

Si pudiera publicar más información con respecto a cómo se llama o usa este script, probablemente obtendrá una respuesta más precisa de alguien.

Respondido 16 Abr '13, 08:04

Si usa comillas dobles, puede poner sus variables en cadenas sin cerrarlas.

Tratar:

$sql="SELECT UNAME FROM `alumni` WHERE $criteria LIKE '%$search%'";

Respondido 16 Abr '13, 08:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.