par
new morning » 28 mars 2009, 12:14
C'est vrai que c'est pas clair tout ça

: le matin on y voit mieux !
En gros je voulais attribuer la même valeur à plusieurs clefs, donc ça pouvait pas marcher

...
J'ai donc bien progressé, mais but un peu sur le problème de départ : au début de mon code je compte mes doublons avec la requête :
Code : Tout sélectionner
SELECT nom count( * )
FROM users
GROUP BY nom
HAVING COUNT( * ) >1
LIMIT 0 , 30
Au cour de mon code, je supprime certaines lignes de cette table, en m'appuyant sur leur 'id', y compris les doublons repérés par cette requette.
Je compte les suppressions au fur et à mesure du code, au moyen d'un compteur
$compteur -- ;
Ce que je n'arrive pas à faire de façon simple, c'est à dire sans refaire une requête à chaque fois et reparcourir tout le tableau, c'est un compteur de doublons : je me retrouve à faire la requête pour tous les utilisateurs !
Je dois pouvoir arranger ça (ci-dessous) pour mettre en tableau en une seule requête, mais surtout il doit y avoir plus simple, non ?
<?php
$doubles = mysql_query("SELECT nom, id, count(*) FROM users GROUP BY nom HAVING COUNT(*) > 1") or die(mysql_error());
while ($doublon = mysql_fetch_assoc ($doubles))
{
if ($id == $doublon ['id'])
{
$compteur_doublon -- ;
}
}
unset ($doubles);
EDIT : en tout cas ça fonctionne, donc mon problème est résolu, même s'il mérite peut-être un peu d'optimisation...