En ce qui concerne ton problème cicom, essaies de supprimer une ligne de moins que la somme trouvée par le count :
<?php
include ('gs_includes/scripts.php');
$sql1 = mysql_query("SELECT count(t1.id) AS compte, t1.camp, t1.pseudo, t1.id FROM pub t1 JOIN pub t2 ON ( t1.pseudo = t2.pseudo AND t1.camp = t2.camp AND t1.id <> t2.id ) WHERE t1.camp = '227' GROUP BY pseudo HAVING (compte > 1)") or die(mysql_error());
while($sql2 = mysql_fetch_array($sql1, MYSQL_ASSOC))
{
$sql2['compte']--;
echo $sql2['compte'].' id '.$sql2['id'].' '.$sql2['pseudo'].' <br />';
if($sql2['compte'] != 0)
{
mysql_query("DELETE FROM pub WHERE pseudo = '".$sql2['pseudo']."' AND camp = '".$sql2['camp']."' LIMIT ".($sql2['compte']-1).")";
}
}
echo 'opération effectuée';
?>