Doublon lors d'un insert
dude00
Messages postés
20
Statut
Membre
-
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
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
-
-
-
-
peut être qu'il ne s'agit pas de doublons mais de 2 enregistrements qui ont les mêmes valeurs des champs.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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. ?