Bonjour,
J'ai un soucis avec un script d'ajout d'entrées en masse dans une table MySQL.
1° Le script génères les informations dans un tableau (array). Et supprime les doublons à l'intérieur de ce tableau (array_unique()). D'une autre part, j'ai une table MySQL prête à accueillir ces données, elle aussi est nette de doublons.
2° Une boucle ajoute chaque éléments du tableau dans la table de la base de données.
3° C'est là que je coince. Comment vérifier que l'info du tableau n'est pas déjà dans la bdd ?

J'ai quelques pistes et idées :
- utilisation de la requête REPLACE INTO, avec l'utilisation d'une clef UNIQUE. C'est la solution qui m'a semblé la plus adaptée à mon problème.
- copie intégrale de la table (et puis la vider intégralement) et placer les info dans un array, ensuite coupler les deux array (celle générée par le script + copie de la table) et supprimer les doublons possibles avec array_unique() ensuite remettre tout dans la base de données. Mais ça va horriblement ralentir la vitesse d'exécution, donc l'idée n'est pas bonne.

Pour info et une meilleur compréhension :

Liste (array créer par le script)
---------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<?php
$liste=array([0] => "donnée 6381",
             [1] => "donnée 7256",
             [2] => "donnée 0692",
             [3] => "donnée 1829",
             [4] => "donnée 3044",
             [5] => "donnée 9670");
// Cette liste ne contient pas de doublons
?>
Tableau d'une base MySQL
-----------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
ID | donnee      | date  | ..... |
-----------------------------------------
0    donnée 1235   YYYY    .....
1    donnée 0987   YYYY    .....
2    donnée 3456   YYYY    .....
3    donnée 9670   YYYY    .....
4    donnée 2345   YYYY    .....
5    donnée 4321   YYYY    .....
6    donnée 9854   YYYY    .....
7    donnée 6798   YYYY    .....
8    donnée 5463   YYYY    .....
9    donnée 6574   YYYY    .....
// Cette liste est également saine de doublons.
Maintenant, si j'ajoute touts les éléments de la liste à la suite, les entrées d'ID 3 et 15 seront des doubles de part leur champ 'donnee' . Voilà un exemple concret de ce que je voudrait éviter.

Merci à ceux et celles qui pourront m'aider, j'espère que j'ai été assez clair dans les explications