English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial PHP Básico

Tutorial PHP Avanzado

PHP & MySQL

Manual de Referencia PHP

WHERE en MySQL

En este tutorial, aprenderá cómo leer registros de una tabla de una base de datos MySQL utilizando PHP según condiciones específicas.

Filtrar registros

WHERELa cláusula se utiliza solo para extraer aquellos registros que cumplan con las condiciones especificadas.

La gramática básica de la cláusula WHERE se puede presentar de la siguiente manera:

SELECT column_name(s) FROM table_name WHERE column_name operator value

Vamos a realizar una consulta SQL utilizando la cláusula WHERE y luego ejecutarla pasándola a la función mysqli_query() de PHP para obtener los datos filtrados.
Supongamos que en la base de datos demo hay una tabla persons con los siguientes registros:

+----+------------+-----------+----------------------+
| id | first_name | last_name | email |
+----+------------+-----------+----------------------+
|  1 | Peter | Parker | [email protected] |
|  2 | John                        | Rambo                   | [email protected]                   |
|  3 | Clark                        | Kent                    | [email protected]                 |
|  4 | John                        | Carter                 | [email protected]                |
|  5 | Harry                     | Potter                 | [email protected]             |
+----+------------+-----------+----------------------+

El siguiente código PHP desdepersonsLeer todas las filas de la tabla donde first_name = 'john':

Ejemplo: método orientado a procedimientos

<?php
/* Intentar conectar al servidor MySQL. Supongamos que está ejecutando MySQL.
Servidor con configuración predeterminada (usuario sin contraseña "root") */
$link = mysqli_connect("localhost", "root", "", "demo");
 
//Revisar conexión
if($link === false){
    die("Error: No se puede conectar. " . mysqli_connect_error());
}
 
//
$_sql = \ * FROM persons WHERE first_name='john'";
if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
        
            echo \
                echo \/
                /
                echo \/
                /
            echo \/tr>";
        while($row = mysqli_fetch_array($result)){
            echo \
                echo \/td>";
                echo \/td>";
                echo \/td>";
                echo \/td>";
            echo \/tr>";
        }
        echo \/table>";
        // Cerrar conjunto de resultados
        mysqli_free_result($result);
    } else{
        echo \
    }
} else{
    echo "Error: No se puede ejecutar $sql. " . mysqli_error($link);
}
 
//Cerrar conexión
mysqli_close($link);
?>

Ejemplo: método orientado a objetos

<?php
/* Intentar conectar al servidor MySQL. Supongamos que está ejecutando MySQL.
Servidor con configuración predeterminada (usuario sin contraseña "root") */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//Revisar conexión
if($mysqli === false){
    die("Error: No se puede conectar. " . $mysqli->connect_error);
}
 
//
$_sql = \ * FROM persons WHERE first_name='john'";
if($result = $mysqli->query($sql)){
    if($_result->num_rows > 0){
        
            echo \
                echo \/
                /
                echo \/
                /
            echo \/tr>";
        ->fetch_array()){
            echo \
                echo \/td>";
                echo \/td>";
                echo \/td>";
                echo \/td>";
            echo \/tr>";
        }
        echo \/table>";
        //Liberar el conjunto de resultados
        $result->free();
    } else{
        echo \
    }
} else{
    echo "Error: No se puede ejecutar $sql. " . $mysqli->error;
}
 
//Cerrar conexión
$mysqli->close();
?>

Ejemplo: método PDO

<?php
/* Intentar conectar al servidor MySQL. Supongamos que está ejecutando MySQL.
Servidor con configuración predeterminada (usuario sin contraseña "root") */

    $_pdo = new PDO(\
    //Establecer el modo de error de PDO en excepción
    $_pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $_e){
    ->getMessage());
}
 
//

    $_sql = \ * FROM persons WHERE first_name='john'";  
    $_result = $_pdo->query($_sql);
    if($_result->rowCount() > 0){
        
            echo \
                echo \/
                /
                echo \/
                /
            echo \/tr>";
        -
            echo \
                echo \/td>";
                echo \/td>";
                echo \/td>";
                echo \/td>";
            echo \/tr>";
        }
        echo \/table>";
        //Liberar el conjunto de resultados
        unset($result);
    } else{
        echo \
    }
} catch(PDOException $_e){
    die("Error: No se puede ejecutar $_sql. \->getMessage());
}
 
//Cerrar conexión
unset($pdo);
?>

Después del filtrado, la colección de resultados se mostrará como sigue:

+----+------------+-----------+---------------------+
| id | first_name | last_name | email               |
+----+------------+-----------+---------------------+
|  2 | John       | Rambo     | [email protected]  |
|  4 | John       | Carter    | [email protected] |
+----+------------+-----------+---------------------+