Maison >développement back-end >Problème PHP >Comment supprimer les bases de données en double du tableau PHP

Comment supprimer les bases de données en double du tableau PHP

WBOY
WBOYoriginal
2023-05-06 16:41:07538parcourir

Avec le développement continu de la technologie Internet, les bases de données sont devenues un élément très important d'un site Web ou d'une application. PHP, en tant que langage de programmation populaire, est utilisé par de nombreux développeurs Web pour créer des sites Web dynamiques. Lors du développement d'une application, vous devrez peut-être stocker des données dans une base de données et en récupérer des données. Dans une base de données, des données en double apparaissent parfois. Les données en double peuvent occuper beaucoup d’espace de stockage et avoir un impact sur les performances des applications Web. Par conséquent, en plus de créer une base de données, vous devez également apprendre à en supprimer les données en double. Dans cet article, nous verrons comment supprimer les données de base de données en double à l'aide de tableaux PHP.

1. Récupérer les données de la base de données

Avant d'utiliser des tableaux PHP pour supprimer les données de la base de données en double, nous devons d'abord récupérer les données de la base de données. Ici, nous utilisons la base de données MySQL comme exemple. Supposons que nous ayons une table nommée « étudiant » qui contient des informations telles que les noms, âges, sexes et classes des étudiants. Ce qui suit est une requête de base pour obtenir les noms des étudiants :

$conn = mysqli_connect("localhost", "username", "password", "dbname");

$sql = "SELECT name FROM student";

$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {

    while($row = mysqli_fetch_assoc($result)) {

        $names[] = $row["name"];

    }

} else {

    echo "0 results";

}

mysqli_close($conn);

Dans cet exemple, nous nous connectons d'abord à la base de données, puis interrogeons la table "student" pour connaître les noms de tous les étudiants. En utilisant la fonction mysqli_fetch_assoc(), nous pouvons récupérer le jeu de résultats de la base de données et le placer dans un tableau. Si la requête ne renvoie aucun résultat, « 0 résultat » est affiché dans le navigateur.

2. Utilisez des tableaux PHP pour supprimer les données en double

Une fois que nous avons récupéré les données de la base de données et les avons stockées dans un tableau, nous pouvons utiliser la fonction intégrée de PHP array_unique () Supprimez facilement les données en double. Voici un exemple simple :

$unique_names = array_unique($names);

Dans cet exemple, nous appelons la fonction array_unique() et passons le tableau $names composé des noms d'étudiants. Cette fonction renverra uniquement les noms uniques (non dupliqués) et les stockera dans la variable $unique_names. Ainsi, si nous tapons $unique_names dans le navigateur, le nom de chaque élève ne sera affiché qu'une seule fois.

print_r($unique_names); //输出去重后的学生姓名

3. Insérez des données uniques dans une nouvelle table

Maintenant, nous avons obtenu le nom unique de l'étudiant et l'avons stocké dans une variable à l'aide de la fonction array_unique() de PHP $unique_names. Nous pouvons ensuite insérer ces données uniques dans une autre table. Voici la requête de base pour insérer des données dans une nouvelle table :

$conn = mysqli_connect("localhost", "username", "password", "dbname");

foreach ($unique_names as $name) {

    $sql = "INSERT INTO new_student (name) VALUES ('$name')";

    mysqli_query($conn, $sql);

}

mysqli_close($conn);

Dans cet exemple, nous nous connectons d'abord à la base de données et utilisons une boucle foreach pour parcourir le tableau $unique_names. Nous insérons ensuite chaque nom unique dans une nouvelle table appelée "new_student". Enfin, nous fermons la connexion à la base de données.

De cette façon, nous pouvons facilement supprimer les données en double de la base de données et insérer des données uniques dans une nouvelle table à l'aide de tableaux PHP.

4. Utilisez l'option DISTINCT pour obtenir des données uniques

En plus d'utiliser des tableaux PHP, nous pouvons également utiliser l'option DISTINCT de la requête SQL pour obtenir des données uniques de la base de données. Voici la requête de base pour obtenir une liste unique de noms d'étudiants :

$conn = mysqli_connect("localhost", "username", "password", "dbname");

$sql = "SELECT DISTINCT name FROM student";

$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {

    while($row = mysqli_fetch_assoc($result)) {

        echo $row["name"];

    }

} else {

    echo "0 results";

}

mysqli_close($conn);

Dans cet exemple, nous recherchons les noms d'étudiants et utilisons l'option DISTINCT pour obtenir une liste unique de noms. Si la requête ne renvoie aucun résultat, « 0 résultat » est affiché. Sinon, nous parcourons l’ensemble de résultats et imprimons chaque nom d’étudiant distinct.

5. Résumé

Dans cet article, nous avons exploré comment supprimer les données de base de données en double à l'aide de tableaux PHP. Nous avons utilisé une base de données MySQL comme exemple et avons montré comment obtenir les noms des étudiants à partir d'une table de données et supprimer facilement les doublons à l'aide de array_unique() de PHP et de l'option DISTINCT de la requête SQL. Enfin, nous avons également montré comment insérer des données uniques dans une nouvelle table. De plus, la déduplication peut être réalisée à l'aide d'autres méthodes, telles que l'utilisation de l'option GROUP BY ou le stockage des données dans une table de hachage. Mais utiliser des tableaux PHP est une méthode simple et efficace, particulièrement adaptée aux petites applications et bases de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn