La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  Insertion de fichier XML et incrément mysql
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: Insertion de fichier XML et incrément mysql  (Lu 8143 fois)
Insertion de fichier XML et incrément mysql
« sur: le 06-03-2014 a 19:54:40 »
aldo72
Membre récent
*

Hors-Ligne

Messages: 36





Voir le Profil    E-Mail
Répondre avec citation

Bonjour a tous,

Je me permet de poster sur ce forum, pour obtenir de l'aide sur un soucis d'incrémente de table mysql.

Mon site : Site de petites annonces gratuites, avec ou sans inscription (compte membre/pro)

Mes manipulations : insertion de petite annonce via l'administration par fichier XML (manipulation qui fonctionne très bien, annonce enregistrer dans la bdd, et présente sur le site)

Problème : Les annonces ensuite enregistrer dans le formulaire prévu a cet effet depuis le site, ne s'enregistre pas dans la BDD, mais le lien d'activation et bien reçu par Email.

Ce lien est constituer comme cela :


http://www.url_de_mon_site.fr/confirmer_ann.php?code=136&email=mon_adresse@url.fr

Le 136 correspondant à l'id de l'annonce dans la BDD, jusqu'à c'est logique, mais lorsque je fais un import XML (qui je le rappel fonctionne très bien)
et que je soumet une nouvelle annonce dans le formulaire classique, le lien reçu en email de confirmation est le suivant :


http://www.url_de_mon_site.fr/confirmer_ann.php?code=0&email=mon_adresse@url.fr


Un 0 au lieu de l'id qui devrais correspondre.

Donc je présume que lorsque l'import XML est réaliser, sa doit bloquer quelque pars au niveau de l'incrémente.

Mais impossible de voir ou ce situe le soucis.

Je tiens a préciser, que je suis pas non plus un grand spécialiste de programmation.

Merci d'avance de vos lumières, qui pourrons m'éclairer sur le problème.

Amicalement

Rapporter au modérateur  

Re:Insertion de fichier XML et incrément mysql
« Répondre #1 sur: le 07-03-2014 a 15:19:41 »
jean-f
Membre récent
*

Hors-Ligne

Messages: 40



Je suis un lama!

Voir le Profil
Répondre avec citation

salut,

si tu pouvais mettre un bout de code ou tu crée ton lien recu par mail ca serait peu etre plus facile pour trouver le problème

@+

Rapporter au modérateur  
Re:Insertion de fichier XML et incrément mysql
« Répondre #2 sur: le 08-03-2014 a 22:04:46 »
Soundboy39
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 153



Webmaster Freelance - Creation et Gestion

Voir le Profil    WWW    E-Mail
Répondre avec citation

Cela vient du script chargé du stockage en BDD... va falloir mettre les mains dans le cambouis...

Rapporter au modérateur  

MO'WebCreation - Création et gestion de sites web
Réseaux sociaux : Facebook - Google +
Re:Insertion de fichier XML et incrément mysql
« Répondre #3 sur: le 09-03-2014 a 18:24:15 »
aldo72
Membre récent
*

Hors-Ligne

Messages: 36





Voir le Profil    E-Mail
Répondre avec citation

C'est bien ce que je pensais, mais j'arrive pas a voir comment modifier sa. Le code d'insertion du xml dans la bdd, est comme sa :

Code:
///////////////////////////////////
//Insertion des annonces XML
//////////////////////////////////

function insert_ann_xml($xml)
{
   global $language_adm;
   
   $str = '';
   $id_ann = '';
   
   $array_donnees = array('id_reg', 'id_dep', 'id_cat', 'email', 'password', 'code_pos', 'ville', 'statut', 'societe', 'siret', 'type', 'nom', 'tel', 'titre', 'texte', 'prix', 'tel_cache', 'xml_key');
   
   $count = 0;
   
   foreach($xml->annonces as $row)
   {
      $i = 0;
      
      // Vérification des données
      
      foreach($array_donnees as $key)
      {
         $error = (!isset($row->$key)) ? 1 : 0;
         
         if($error == 1)
         break;
         
         $i++;
      }
      
      // Insertion des annonces
      
      if($error == 0)
      {
         $id_reg = (int) $row->id_reg;
         $id_dep = (int) $row->id_dep;
         $id_cat =  (int) $row->id_cat;
         $email = mysql_real_escape_string($row->email);
         $password = mysql_real_escape_string($row->password);
         $code_pos = mysql_real_escape_string($row->code_pos);
         $ville = mysql_real_escape_string($row->ville);
         $statut = (int) $row->statut;
         $societe = mysql_real_escape_string($row->societe);
         $siret = mysql_real_escape_string($row->siret);
         $type = (int) $row->type;
         $nom = mysql_real_escape_string($row->nom);
         $tel = mysql_real_escape_string($row->tel);
         $titre = mysql_real_escape_string($row->titre);
         $texte = mysql_real_escape_string($row->texte);
         $prix = (float) $row->prix;
         $time = time();
         $tel_cache = mysql_real_escape_string($row->tel_cache);
         $ip = $_SERVER['REMOTE_ADDR'];
         $xml_key = mysql_real_escape_string($row->xml_key);
         $photo1 = (!empty($row->photo1)) ? mysql_real_escape_string($row->photo1) : '';
         $photo2 = (!empty($row->photo2)) ? mysql_real_escape_string($row->photo2) : '';
         $photo3 = (!empty($row->photo3)) ? mysql_real_escape_string($row->photo3) : '';
         $photo4 = (!empty($row->photo4)) ? mysql_real_escape_string($row->photo4) : '';
         $photo5 = (!empty($row->photo5)) ? mysql_real_escape_string($row->photo5) : '';
         $photo6 = (!empty($row->photo6)) ? mysql_real_escape_string($row->photo6) : '';
         $photo7 = (!empty($row->photo7)) ? mysql_real_escape_string($row->photo7) : '';
         $photo8 = (!empty($row->photo8)) ? mysql_real_escape_string($row->photo8) : '';
         $photo9 = (!empty($row->photo9)) ? mysql_real_escape_string($row->photo9) : '';
         $photo10 = (!empty($row->photo10)) ? mysql_real_escape_string($row->photo10) : '';
         
         $sql = "INSERT INTO ". PREFIX ."annonces (id_reg, id_dep, id_cat, email, password, code_pos, ville, status, type, nom, tel, titre, ann, prix, etat, date, tel_cache, ip, xml_key) VALUES";
         $sql .= "('$id_reg', '$id_dep', '$id_cat', '$email', '$password', '$code_pos', '$ville', '$statut', '$type', '$nom', '$tel', '$titre', '$texte', '$prix', '2', '$time', '$tel_cache', '$ip', '$xml_key')";
         $sql .= " ON DUPLICATE KEY UPDATE id_reg = VALUES(id_reg), id_dep = VALUES(id_dep), id_cat = VALUES(id_cat), email = VALUES(email), code_pos = VALUES(code_pos), ville = VALUES(ville), nom = VALUES(nom), tel = VALUES(tel), titre = VALUES(titre), ann = VALUES(ann), prix = VALUES(prix), tel_cache = VALUES(tel_cache)";
         mysql_query($sql);
         
         $id_ann = mysql_insert_id();
         
         if(!empty($id_ann))
         {
         
            $sql_soc = "INSERT INTO ". PREFIX ."annonces_societe (id_ann, nom_societe, siret) VALUES";
            $sql_soc .= "('$id_ann', '$societe', '$siret')";
            mysql_query($sql_soc);
            
            for($i = 1; $i <= 10; $i++)
            {
               $nom ='';
               
               if(!empty($photo1) && $i == 1) $nom = $photo1;
               elseif(!empty($photo2) && $i == 2) $nom = $photo2;
               elseif(!empty($photo3) && $i == 3) $nom = $photo3;
               elseif(!empty($photo4) && $i == 4) $nom = $photo4;
               elseif(!empty($photo5) && $i == 5) $nom = $photo5;
               elseif(!empty($photo6) && $i == 6) $nom = $photo6;
               elseif(!empty($photo7) && $i == 7) $nom = $photo7;
               elseif(!empty($photo8) && $i == 8) $nom = $photo8;
               elseif(!empty($photo9) && $i == 9) $nom = $photo9;
               elseif(!empty($photo10) && $i == 10) $nom = $photo10;
               
               if(!empty($nom))
               {
                  $sql_img = "INSERT INTO ". PREFIX ."annonces_images (id_ann, nom) VALUES ('$id_ann', '$nom')";
                  mysql_query($sql_img);
               }
            }
         }
         $count++;
      }
      else
      {
         $error = 4;
         break;
      }
   }
   
   if(!empty($id_ann))
   creat_flux($id_ann);
   
   return $error;
}

Rapporter au modérateur  
Re:Insertion de fichier XML et incrément mysql
« Répondre #4 sur: le 10-03-2014 a 08:38:45 »
Soundboy39
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 153



Webmaster Freelance - Creation et Gestion

Voir le Profil    WWW    E-Mail
Répondre avec citation


re

Tu analyse la partie qui fonctionne... mais nous on veut voire la partie qui ne fonctionne pas, en l’occurrence la méthode qui permet le stockage des annonces par le biais du formulaire.

Rapporter au modérateur  

MO'WebCreation - Création et gestion de sites web
Réseaux sociaux : Facebook - Google +
Re:Insertion de fichier XML et incrément mysql
« Répondre #5 sur: le 10-03-2014 a 12:55:55 »
jean-f
Membre récent
*

Hors-Ligne

Messages: 40



Je suis un lama!

Voir le Profil
Répondre avec citation

par contre vu que le champ id_reg est théoriquement de genre auto_incremente, pourquoi le remplir manuellement et ne pas laisser faire mysql en laissant le champ id_reg vide lors de l'INSERT ?

INSERT INTO ". PREFIX ."annonces (id_reg, id_dep,  .......

INSERT INTO ". PREFIX ."annonces (' ', id_dep,  .......

Rapporter au modérateur  
Re:Insertion de fichier XML et incrément mysql
« Répondre #6 sur: le 11-03-2014 a 10:09:00 »
aldo72
Membre récent
*

Hors-Ligne

Messages: 36





Voir le Profil    E-Mail
Répondre avec citation

Bonjour,

Alors voici la partie qui enregistre depuis le formulaire :

Code:
////////////////////////////////
//Enregistrement de l'annonce dans la base de données
////////////////////////////////

function register($array, $pass, $etat)
{
   global $cache_form, $cache_champs, $cache_options_visuelles;
   
   foreach ($array as $k => $v)
   {
      $array[$k] = mysql_real_escape_string($v);
   }
   
   $ip = $array['ip'];
   $reg = (int) $array['reg'];
   $dep = (isset($array['dep'])) ? (int) $array['dep'] : '';
   $cat = (int) $array['cat'];
   $ema = $array['ema'];
   $cod = (isset($array['cod'])) ? $array['cod'] : '';
   $vil = (isset($array['vil'])) ? $array['vil'] : '';
   $sta = (int) $array['sta'];
   $typ = (int) $array['typ'];
   $nom = $array['nom'];
   $tel = (isset($array['tel'])) ? $array['tel'] : '';
   $tit = $array['tit'];
   $ann = $array['ann'];
   
   if(isset($array['pri']))
   {
      $pri = str_replace(',' ,'.', $array['pri']);
      $pri = (float) $pri;
   }
   else $pri = 0;
   
   $tel_cache = (!empty($array['tel_cache'])) ? $array['tel_cache'] : 'N';
   $id_compte = (!empty($array['id_compte'])) ? (int) $array['id_compte'] : 0;
   $password = mysql_real_escape_string($pass);
   $time = time();
   $etat = (int) $etat;

   $sql = "INSERT INTO ". PREFIX ."annonces VALUES('', '$reg', '$dep', '$cat', '$ema', '$password', '$cod', '$vil', '$sta',
   '$typ', '$nom', '$tel', '$tit', '$ann', '$pri', '$etat', '$time', '$tel_cache', '$ip', '$id_compte', '')";
   mysql_query($sql);
   
   $id = mysql_insert_id();
   
   //Modification de la clé xml
   
   $sql = "UPDATE ". PREFIX ."annonces SET xml_key = '$id' WHERE id_ann = '$id'";
   mysql_query($sql);
   
   //Enregistrement des photos
   
   if(isset($_SESSION['photo']['count']) AND $_SESSION['photo']['count'] > 0)
   {
      $sql = "INSERT INTO ". PREFIX ."annonces_images (id_ima, id_ann, nom) VALUES";
      
      for($i = 1; $i <= 10; $i++)
      {
         if(isset($_SESSION['photo'][$i]))
         $name = $_SESSION['photo'][$i];
         
         $sql .= ($i != 1 && isset($_SESSION['photo'][$i])) ? ',' : '';
         
         if(isset($_SESSION['photo'][$i]))
         $sql .= " ('' , '$id', '$name')";
      }
      
      $sql .= " ON DUPLICATE KEY UPDATE id_ann = VALUES(id_ann)";
      
      mysql_query($sql);
   }

jean-f => Non le champ "id-reg" et "id_dep", ne peuvent pas être en auto incrément, car il correspondent a une autres tables, en faites "id_reg" correspondant aux régions (bretagne, normandie ect...) et chaque rrégion est enregistrer dans une tables avec chacune leur ID, et pareil pour "id_dep" qui correspond aux département

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg