Doublon lors d'un insert

dude00 Messages postés 20 Statut Membre -  
dude00 Messages postés 20 Statut Membre -
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

5 réponses

nasix
 
Salut,

ça t'affiche quoi un : print_r($sms_list_id) ?
0
dude00 Messages postés 20 Statut Membre
 
cela m'affiche un tableau contenant les id des listes
0
dude00 Messages postés 20 Statut Membre
 
D'autre par les deux champ on exactement le meme timestamp.
0
nasix Messages postés 13 Statut Membre 8
 
peut être qu'il ne s'agit pas de doublons mais de 2 enregistrements qui ont les mêmes valeurs des champs.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dude00 Messages postés 20 Statut Membre
 
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. ?
0