Doublon lors d'un insert

Bonjour,
je travaille actuellement sur une plateforme d'envoi de sms.
Losrque je j'envoi un sms j'insere dans la base les listes selectionnees a l'envoi et le nombre de sms envoyé a cette liste. Cependant j'ai un probleme chaque insertion se fait en double. Après des heures de debug je ne trouve pas le probleme.

Voici la partie du code concerné:
fichier sms_ajax.php

function get_subscribers_single_list($sms_list_id, $msg, $users_list = null, $city_id, $user_id, $db)
{

$sms_list = $db->get_sms_list_subscriber($sms_list_id);
//print_r($sms_list);
$sms_histo_list_id = $db->log_list_sms_new($msg, $user_id, $city_id, $sms_list_id,$db->get_nb_sms_subscriber_list($sms_list_id));
if ($sms_list)
{
$a = 0;
foreach ($sms_list as $key=>$sms_user)
{
if($sms_user!=null){
$tab_infos=$db->recup_info_for_sms_send_param($sms_user);
if(strcmp("33", substr($sms_user,0,2)))
$sms_user= "%2b33".substr($sms_user,1);
if ($users_list == null)
$users_list = array();
array_push($users_list, array("sms_sub_tel" => $sms_user, "sms_sub_name" => $tab_infos["contact_surname"], "sms_dest_id" => $tab_infos["contact_id"], "sms_histo_list_id" =>$sms_histo_list_id[$key]));
}
}
}
return $users_list;
}

$Users_index = 0;
$users_list = array();

if ($sms_list_id != -1){
$users_list = get_subscribers_single_list($sms_list_id, $msg, null, $city_id, $user_id, $db);
//echo "user_list=".$users_list;
}

L'insertion se fait via la fonction log_list_sms_new appelé au debut de get_subsribers single list

function log_list_sms_new($msg, $sms_sender_id, $sms_city_id, $sms_list_id, $nb_sms)
{
for($i=0;$i<count($sms_list_id);$i++){
// echo "test_get_sms_sms_list_id=".$sms_list_id[$i]."<br>";
if ($sms_list_id[$i] != -1 && $sms_list_id[$i] != null)
{
//if (!$nb_sms)
//return;
$result = $this->database->query("select list_name from list where list_id='".$sms_list_id[$i]."'");
$list_name = $this->database->fetch_array($result);
//print_r($list_name);
$result = $this->database->query("select user_name from user where user_id='".$sms_sender_id."'");
$sender_name = $this->database->fetch_array($result);
//print_r($sender_name);
$this->database->query("insert into sms_histo_list (sms_msg, sms_date_list, sms_sender_id, sms_sender_name, sms_list_id, sms_list_name, sms_city_id, nb_sms)
values ('".addslashes($msg)."', '".time()."', '".$sms_sender_id."', '".addslashes($sender_name["user_name"])."', '".$sms_list_id[$i]."', '".addslashes($list_name["list_name"])."', '".$sms_city_id."', '".$nb_sms[$i]."')");
echo "insert into sms_histo_list (sms_msg, sms_date_list, sms_sender_id, sms_sender_name, sms_list_id, sms_list_name, sms_city_id, nb_sms)
values ('".addslashes($msg)."', '".time()."', '$sms_sender_id', '".addslashes($sender_name["user_name"])."', '$sms_list_id[$i]', '".addslashes($list_name["list_name"])."', '$sms_city_id', '$nb_sms[$i]')";
$sms_histo_id[]=$this->database->get_last_id();
echo"sms_histo_id=".print_r($sms_histo_id);
}
}

print_r($sms_histo_id);
return $sms_histo_id;
}

voila je ne trouve pas du tout, j'ai vu des histoires de double chargement de la page?Merci de votre aide
Configuration: Linux
Firefox 3.0.6

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. D'autre par les deux champ on exactement le meme timestamp.
    1. peut être qu'il ne s'agit pas de doublons mais de 2 enregistrements qui ont les mêmes valeurs des champs.
      1. Je suis pas sur d'avoir bien compris, mais je pense que non car si je selectionne une liste avec un seul contact dedans j'ai comme meme un doublon. ?