Précédent   Forum des professionnels en informatique > PHP > Outils > phpMyAdmin
phpMyAdmin Forum d'entraide sur l'outil phpMyAdmin : installation, utilisation, etc. Avant de poster -> Cours phpMyAdmin
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/02/2007, 09h09   #1
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Par défaut Un coller qui ne correspond pas au copier du copier/coller

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

Code :
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());
					}
Mon echo en fin de script m'affiche lorsque je suis en "update"
Citation:
UPDATE tb_activite SET libelle = 'Bénévole' WHERE activite_id='1'
Puis j'ai l'erreur suivante sur ma requête :
Citation:
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.

Je sélectionne donc sur mon écran ceci :
Citation:
UPDATE tb_activite SET libelle = 'Bénévole' WHERE activite_id='1'
Et je fais coller dans phpmyadmin dans "Exécuter une ou des requêtes sur la base xxx"

Le résultat du copier/coller n'est que
Citation:
UPDATE tb_activite SET libelle = 'Bénévole'
Il ne veux pas prendre
Citation:
WHERE activite_id='1'
Se peut-il qu'un caractère caché empêche le copier coller de s'effectuer correctement ?

Merci d'avance
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2007, 12h53   #2
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Une petite modification dans mon code, ceci
Code :
$req[strlen($req)-1] = " ";
à la place de cela
Code :
$req[strlen($req)-1] = "";
La différence est entre les ", j'ai simplement mis un espace.

C'est tout ce qui bloquait.

Merci
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h23.


 
 
 
 
Partenaires

Hébergement Web