Bonjour,
Cela fait un moment que je tourne autour, ce doit pourtant être simple et pourtant.
Je constitue en fonction de certains critère une requête
Mon echo en fin de script m'affiche lorsque je suis en "update"
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 // Initialisation du type de traitement if(empty($_SESSION['session_remplacer'])) { $traitement="INSERT "; } else { $traitement="UPDATE "; } // Lecture de la table de destination pour récupérer le nom des entêtes de colonne $table_reception = $_SESSION['session_table_reception']; $result = mysql_query("SHOW COLUMNS FROM $table_reception"); while ($ligne = mysql_fetch_array($result)) { $tab_champ[]=$ligne[0]; } $num = mysql_num_rows($result); // Lecture de la table d'origine $prefixe = "../temp/"; $fileinput = $prefixe.$_SESSION['session_table_importe']; if(file_exists($fileinput)) { $file = fopen($fileinput, "r"); $sql = fread($file, filesize($fileinput)); fclose($file); $inst = explode("\n", $sql); $n = count($inst); for($i=0;$i<$n;$i++) { $req = $traitement.$table_reception." SET "; $reqident = " WHERE "; if(trim($inst[$i])!="") { // J'éclate l'enregistrement de la table d'origine $champorigin = explode(";", $inst[$i]); $j=0; $requete = ""; $ident = ""; // pour chaque champ de la table de destination while ($j < $num) { if(isset($choisi[$j]) || isset($trt[$j])) { $y = $origin[$j]; $champorigin[$y]= str_replace('"', "", $champorigin[$y]); $champorigin[$y]= utf8_decode($champorigin[$y]); $champorigin[$y]= addslashes($champorigin[$y]); // s'il a été choisi if(isset($choisi[$j]) && !isset($trt[$j])) { // je prends le n° du champ d'origine correspondant $requete.=$tab_champ[$j]." = '".$champorigin[$y]."',"; } // s'il est identifiant if(isset($trt[$j])) { // je prends le n° du champ d'origine correspondant $ident.=$tab_champ[$j]." = '".$champorigin[$y]."',"; } } $j++; } $req.= $requete; $req[strlen($req)-1] = ""; if(!empty($ident)) { $reqident.= $ident; $req.= $reqident; //$req.= $ident; $req[strlen($req)-1] = ""; } // Mise à jour de l'enregistrement echo $req; mysql_query("$req") or die("$req".mysql_error()); }
Puis j'ai l'erreur suivante sur ma requête :UPDATE tb_activite SET libelle = 'Bénévole' WHERE activite_id='1'
Pour en faire le contrôle, je veux copier la requête dans phpmyadmin afin de comprendre ce qui ne fonctionne pas.UPDATE tb_activite SET libelle = 'Bénévole' WHERE activite_id = '1'
Je sélectionne donc sur mon écran ceci :
Et je fais coller dans phpmyadmin dans "Exécuter une ou des requêtes sur la base xxx"UPDATE tb_activite SET libelle = 'Bénévole' WHERE activite_id='1'
Le résultat du copier/coller n'est queIl ne veux pas prendreUPDATE tb_activite SET libelle = 'Bénévole'Se peut-il qu'un caractère caché empêche le copier coller de s'effectuer correctement ?WHERE activite_id='1'
Merci d'avance
Partager