Te hago ver un par de detalles
1 - addslashes no te asegura evitar sql injection( si no sabes q es eso averigualo! )
2 - Snd234 te explico bien que como funciona sprintf
lo q tenes que hacer es :
Código PHP:
$colname_to = "1";
if (isset($_POST['nombre']))
{
if ( get_magic_quotes_gpc() )
{
$nameToSearch = mysql_real_escape_string( stripslashes($_POST['nombre']) , $objConex );
}else{
$nameToSearch = mysql_real_escape_string( $_POST['nombre'] , $objConex );
}
}
//OJO: $radiobuttom no esta verificado!
$query= "
SELECT nombre, icono FROM perros WHERE nombre LIKE '%".$nameToSearch."%'
UNION SELECT nombre, icono FROM gatos WHERE nombre LIKE '".$radiobutton."'";
///
en el caso de que quieras usar sprintf:
Código PHP:
$query = sprintf( "
SELECT nombre, icono FROM perros WHERE nombre LIKE '%s'
UNION SELECT nombre, icono FROM gatos WHERE nombre LIKE '%s' "
, mysql_real_escape_string( $_POST['nombre'] , $objConex )
, mysql_real_escape_string( $_POST['radiobuttom'] , $objConex )
)
Otros detalles, radiobuttom puede tener la informacion que cualquiera quiera, al igual que $_POST['nombre']. Quiero decir que verifiques q los 2 campos no tengan valores extraños antes de meterlos en una sentencia Sql.
Esto que te puse arriva:
Código PHP:
mysql_real_escape_string( $_POST['nombre'] , $objConex )
tambien es incorrecto. Tenes que verificar antes que $_POST['nombre'] no posea valores que no deseas. Si es un nombre usa la Funcion ctype_alnum.
A los radio ( los inputs html ) no le pongas mas que valores numericos. Despues con php hace lo q tengas q hacer. Por Ej:
Código PHP:
If ( $_POST['radio'] == 0 )
{
//HACER ALGO1
}else{
//HACER ALGO2
}
Otra cosa
Cuando haces un FROM table WHERE nombre LIKE 'algo', el LIKE necesita los valores '%$variable%' para buscar por izq y por derecha aproximaciones a datos q esten en la bse de datos. Si pones LIKE '%$variable' buscara por izq, si pones '$variable%' buscara por derecha y si pones '%$variable%' por los 2 lados.