Filtro de búsqueda a través de varias consulta en mysql php

Ya varias veces he preguntado sin obtener respuesta, espero que esta vez si puedan ayudarme:

quiero crear un filtro de búsqueda a través de varios campos en mysql y php.

estoy creando una pagina web de amigos en la red y lo que quiero básicamente es que los usuarios puedan filtrar los perfiles según, nombre, edad, sexo, estatura, peso, cuidad, color de ojos, color de cabello, etc.
ejemplo si eligen filtrar por nombre y escriben el nombre de maría, que aparezcan todas la mujeres que se llamen maría, y si aparte del nombre desean filtrar por nombre y por ciudad y escriben madrid, entonces que aparezcan todas las maría que viven en madrid, y si filtran por nombre y ciudad mas estatura 1.65cms, entonces que aparezcan todas las maría que viven en madrid y miden 1.65cms de estatura.


Y si deseen filtrar solo por edad 25 años, que aparezcan solo todas quienes tengan 25 años de edad.

llevo semanas, leo y releo pero ni lograr resultados

les dejo varios código aquí para que me aconsejen cual seria el mejor a utilizar

<html>
<body>
<form name="buscador" method="POST">
<input type="text" name="buscar">
<input type="submit" value= "enviar">
</form>
<?php
if (isset($_POST['buscar']) && !empty($_POST['buscar'])){
$total="";
// CONEXIÓN A LA BASE
$DB_NAME = 'basededatos';
$DB_HOST = 'localhost';
$DB_USER = 'usuario';
$DB_PASS = 'contraseña';
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
$mysqli->set_charset("utf8");
//CONSULTA
$query = "SELECT * FROM `basededatos` WHERE Nombre LIKE '%{$_POST['buscar']}%'";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
// RECORRIDO DE LOS DATOS
if($result->num_rows > 0) {
$total = $result->num_rows;
printf("Hay %d Nombre(es).\n", $total);
echo '<br />';
while($row = $result->fetch_assoc()) {
echo stripslashes($row['Teléfono']);
echo '<br />';
}
}
else {
echo 'No hay resultados';
}
// CIERRAS CONEXIÓN
mysqli_close($mysqli);
}
else { echo "escribe un nombre";}
?>
</body>
</html>

<?php
$con = mysql_connect("localhost","usuario","contraseña");
if (!$con)
{
die('Could not connect: ' . Mysql_error());
}
mysql_select_db("basededatos", $con);
/*
require_once "common.php";*/
if(isset($_POST['submit'])) {
$Nombre = $_POST['Nombre'];
$Email = $_POST['Email'];
if($Nombre != '' && $Email != '') {
$conditions = "Nombre LIKE '%".mysql_real_escape_string($Nombre)."%' AND Email LIKE '%".mysql_real_escape_string($Email)."%'";
}
$query = "SELECT * FROM basededatos ";
if(count($conditions) > 0) {
$query .= "WHERE " . $conditions;
}
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
echo $row['Nombre'] . "<br />";
}
}
?>
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<table>
<tr>
<td>Nombre:</td>
<td><input type="text" name="Nombre" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="Email" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="submit" value="Search" /></td>
</tr>
</table>
</form>

<?php
$con = mysql_connect("localhost","usuario","contraseña");
if (!$con)
{
die('Could not connect: ' . Mysql_error());
}
mysql_select_db("basededatos", $con);
if(isset($_POST['submit'])) {
// define the list of fields
$fields = array('Nombre', 'Edad', 'Teléfono', 'Email', 'Estatura', 'Peso');
$conditions = array();
// loop through the defined fields
foreach($fields as $field){
// if the field is set and not empty
if(isset($_POST[$field]) && $_POST['field'] != '') {
// create a new condition while escaping the value inputed by the user (SQL Injection)
$conditions[] = "`$field` LIKE '%" . Mysql_real_escape_string($_POST[$field]) . "%'";
}
}
// builds the query
$query = "SELECT * FROM TABLA ";
// if there are conditions defined
if(count($conditions) > 0) {
// append the conditions
$query .= "WHERE " . Implode (' AND ', $conditions); // you can change to 'OR', but I suggest to apply the filters cumulative
}
$result = mysql_query($query);
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<tr>
<td>Nombre:</td>
<td><input type="text" name="Nombre" /></td>
</tr>
<tr>
<td>Edad:</td>
<td><input type="text" name="Edad" /></td>
</tr>
<tr>
<td>Teléfono:</td>
<td><input type="text" name="Teléfono" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="Email" /></td>
</tr>
<tr>
<td>Estatura:</td>
<td><input type="text" name="Estatura" /></td>
</tr>
<tr>
<td>Peso:</td>
<td><input type="text" name="Peso" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="submit" value="Search" /></td>
</tr>
</form>
</table>
<?php
if(isset($_POST['submit'])) {
while($row = mysql_fetch_array($sql)) {
echo $row['name'] . "<br />";
}
}
?>

$edad = $_POST['edad'];
$peso = $_POST['peso'];
$estatura = $_POST['estatura'];
$sql = '';
if($edad != '') {
$sql = "edad = '$edad';
}
if($peso != '') {
if($sql != '') {
$sql .= " AND peso LIKE '$peso'";
} else {
$sql = "peso LIKE '$peso'";
}
}
if($estatura != '') {
if($sql != '') {
$sql .= " AND estatura LIKE '$estatura'";
} else {
$sql = "estatura LIKE '$estatura'";
}
}
$query =...

Añade tu respuesta

Haz clic para o