IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Doublon lors d'une insertion


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Par défaut Doublon lors d'une insertion
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    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

  2. #2
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 509
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 509
    Par défaut
    Bonjour,

    Je suis désolé mais le code est totalement illisible . Utilisé la balise prévus pour => # et aéré le code. Ainsi nous y verrons plus claire et peut être que vous verrez l'erreur vous sauter au yeux.

Discussions similaires

  1. Réponses: 13
    Dernier message: 14/05/2008, 16h22
  2. Lenteur lors d'une insertion (sql server)
    Par shiners300 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 16/09/2005, 09h09
  3. Réponses: 7
    Dernier message: 25/07/2005, 13h41
  4. [BDE] Echec de contrôle lors d'une insertion
    Par rbag dans le forum Bases de données
    Réponses: 2
    Dernier message: 26/11/2004, 09h57
  5. PB date lors d'une insertion en Base.
    Par NATHW dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/09/2004, 17h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo