PHP - BUSCADOR DE REGISTROS

   
Vista:
Imágen de perfil de Sandra

BUSCADOR DE REGISTROS

Publicado por Sandra ssanchezc1984@gmail.com (50 intervenciones) el 04/05/2015 18:33:02
Buenas! ya ando por aqui jeje. ahora estoy con un buscador que quiero que me busque por diversos campos, pues el nombre de empresa, el cif el email y el telefono. Recibe bien los dos parametros, el textbox donde se pone lo que busca y un select donde seleccionas por qué campo buscar... pero no me funciona y creo que es por la sentencia SQL...

Os pego el codiguillo:

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
$busqueda = ISSET($_POST['txtBuscar']) ? $_POST['txtBuscar'] : null;
$porquebuscar=ISSET($_POST['porquebuscar']) ? $_POST['porquebuscar'] : null;
echo $busqueda;
echo $porquebuscar;
			$conexion = mysql_connect("localhost", "s15c4aed_admin", "password");
			mysql_select_db("s15c4aed_gestion-acr",$conexion);
			$result = mysql_query("SELECT * FROM CLIENTE WHERE".$porquebuscar." LIKE '%".$busqueda."%' order by".$porquebuscar."");
 
                        if ($busqueda != ""){
				if (mysql_affected_rows($conexion) > 0){
					echo "<b>--SE HAN ENCONTRADO ".mysql_num_rows($result)." REGISTROS.--</b><br><BR><BR>";
					?>
<TABLE><th width=85>Razón Social</th> <th width=250>Cif/Nif</th><th width=150>Teléfono</th><th width=210>E-Mail</th><tr></table>
<?
					while($row = mysql_fetch_array($result)){
						echo "<table>
      <td width='200'><a href='http://gestion-acrasesores.s15c4aed.alojamientovirtual.com/modules.php?name=vermodifempresa&idcli=$row[ID_CLIENTE]' target='_blank'><FONT COLOR='blue'><b>".$row['RAZON_SOCIAL']."</b></font></a></td>
      <td width='200'>".$row['CIFNIF']."</td>
      <td width='200'>".$row['TEL1']."</td>
      <td width='200'>".$row['EMAIL1']."</td>
      </tr>
</TABLE><br>";
					}
				} else{
					echo "No existen coincidencias.";
				}
				mysql_close($conexion);
			}

Me sale siempre que no existen coincidencias... Lo he adaptado de la pagina de buscar que si que funciona pero siempre con el nombre o razon social de la empresa..

Gracias!!
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

BUSCADOR DE REGISTROS

Publicado por MMan (59 intervenciones) el 04/05/2015 19:39:12
$result = mysql_query("SELECT * FROM CLIENTE WHERE".$porquebuscar." LIKE '%".$busqueda."%' order by".$porquebuscar."");


ANTES de hacer el query... deberias primero comprobar que las variables contengan datos correctos

--------

$porquebuscar=ISSET($_POST['porquebuscar']) ? $_POST['porquebuscar'] : null;

supongo que esa variable $porquebuscar.. corresponde a un nombre de campo... si en el formulario no se especifica nada.. valdria null ?? y como se reflejaria en la sentencia SQL ??

SELECT * FROM CLIENTE WHERE null LIKE ...... ?

tal vez en vez de null.. deberias poner el nombre de algun campo "por defecto"

---------


igual para $busqueda.. en vez de null .. ""
--------

"SELECT * FROM CLIENTE WHERE".$porquebuscar." LIKE.... "

WHEREcampo ... o WHERE campo

despues del WHERE te falta un espacio



-------------
$busqueda = trim($_POST['txtBuscar']);
$porquebuscar=ISSET($_POST['porquebuscar']) ? $_POST['porquebuscar'] : "nombre";
echo $busqueda;
echo $porquebuscar;
$conexion = mysql_connect("localhost", "s15c4aed_admin", "password");
mysql_select_db("s15c4aed_gestion-acr",$conexion);

// comprobaciones

si isset( $busqueda ) // si hay algo en busqueda, ejecuta la consulta
$result = mysql_query("SELECT * FROM CLIENTE WHERE ".$porquebuscar." LIKE '%".$busqueda."%' order by".$porquebuscar."");

...
.....
....
--------

por ultimo poner directamente el contenido de variables dentro de una sentencia SQL es VULNERABLE a INYECCIONES SQL, antes de .. deberias "sanear" el contenido... y/o usar MYSQLi
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