|
La Communauté Webmaster 
| Pages: [1] |
 |
|
|
|
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

|
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 |
|
|
|
|
|
|
 |
Re:Insertion de fichier XML et incrément mysql
« Répondre #1 sur: le 07-03-2014 a 15:19:41 » |
|
|
|
|
 |
Re:Insertion de fichier XML et incrément mysql
« Répondre #2 sur: le 08-03-2014 a 22:04:46 » |
|
|
|
|
 |
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

|
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 :
/////////////////////////////////// //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; }
|
| |
|
|
|
|
 |
Re:Insertion de fichier XML et incrément mysql
« Répondre #4 sur: le 10-03-2014 a 08:38:45 » |
|
|
|
|
 |
Re:Insertion de fichier XML et incrément mysql
« Répondre #5 sur: le 10-03-2014 a 12:55:55 » |
|
|
|
|
 |
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

|
Bonjour,
Alors voici la partie qui enregistre depuis le formulaire :
//////////////////////////////// //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 |
|
|
|
|
| Pages:
[1] |
|
|
|
| |
|
|