Php MySQL et FireFox

Eléphant du PHP | 84 Messages

27 févr. 2006, 23:54

Salut à tous!

Je ne savais pas trop ou poser ma question donc voilà.

Je rencontre un problème sous FF lors de l'interprétation d'une requete SQL.
			while($enr1 = mysql_fetch_array($requete1))
			{
				// Création d'un Id
				$ID = '';
				$taille  = 20;
				$lettres = $enr1[0].time().$enr1[0];
				srand(time());
				for ($i=0;$i<$taille;$i++)
				{
					$ID.=substr($lettres,(rand()%(strlen($lettres))),1);
				}	
				
				$where  = 'ref_document="'.$enr1[0].'"';
				$chps = 'id_temp="'.$ID.'"';
				$requete2= mysql_db_query($sql_bdd,'UPDATE '.$table.' SET '.$chps.' WHERE '.$where, $db_link) or die(mysql_error());
         }
Lorsque je compare un echo $ID et la valeur réelle enregistrée dans la Bdd ce n'est pas les mêmes valeurs.
EX: Pour un $ID = 86661108467661409611 j'ai dans la bdd une valeur stockée = 19716686664164710611 :shock:

Avec IE tout fonctionne parfaitement bien. Je ne comprend pas :evil:

PS: Un forum sur les problèmes pouvant être rencontrés en fonction des navigateurs serait peut être une idée.

Eléphant du PHP | 84 Messages

28 févr. 2006, 00:08

:tir2:

Mammouth du PHP | 19672 Messages

28 févr. 2006, 00:10

Le navigateur ne peut pas influencer l'interprétation du PHP qui se passe coté serveur, l'erreur est donc ailleurs.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 84 Messages

28 févr. 2006, 00:20

Comment expliquer que je n'est AUCUN problème avec IE alors :? :?:

Mammouth du PHP | 19672 Messages

28 févr. 2006, 00:31

Je ne l'explique pas :-k Techniquement, ça ne peut pas avoir d'influence: le navigateur, c'est coté client. Or l'identifiant est généré exclusivement en PHP coté serveur : je ne crois pas avoir vu que tu utilisais des données en provenance du navigateur dans ton code ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 84 Messages

28 févr. 2006, 00:31

Vu que la valeur stockée est différente je suis passé par une requete suplémentaire pour extraire et ainsi contrôler la valeur stockée dans la bdd.
			while($enr1 = mysql_fetch_array($requete1))
			{
				echo '<br>';
				$ref = $enr1[0];
				
				// Création d'un Id 
				$ID = '';
				$Idtemp ='';
				
				$taille  = 20;
				$lettres = $ref.'AZERTYUIOPMLKJHGFDSQWXCVBN0123456789'.$ref;
				srand(time());
				for ($i=0;$i<$taille;$i++)
				{
					$ID.=substr($lettres,(rand()%(strlen($lettres))),1);
				}	
				
				$Idtemp = $ID;
				
				$where  = 'ref_document="'.$ref.'"';
				echo $chps = 'id_temp="'.$Idtemp.'"';				
				$requete2= mysql_db_query($sql_bdd,'UPDATE '.$table.' SET '.$chps.' WHERE '.$where, $db_link) or die(mysql_error());
		
				$select = 'id_temp, libelle, format, poids';
					
				$requete3	= mysql_db_query($sql_bdd,'SELECT '.$select.' FROM '.$table.' WHERE '.$where,$db_link) or die(mysql_error());
				$num3		= mysql_num_rows($requete3);
				if($num3 == 1)
				{
					echo $Idtemp = mysql_result($requete3,0,'id_temp');
				}				
			}
:twisted: :twisted: :twisted: le echo du mysql_result() me retourne la valeur crée avant l'enregistrement dans la bdd.



Je ne comprend plus rien :shock: :cry: :cry: :cry:

Eléphant du PHP | 84 Messages

28 févr. 2006, 00:40

Cela fonctionne une fois en passant :? ... Et encore en passant vite :D

Mammouth du PHP | 19672 Messages

28 févr. 2006, 00:50

le echo du mysql_result() me retourne la valeur crée avant l'enregistrement dans la bdd.
Ce n'est pas le but recherché ? :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

28 févr. 2006, 01:10

SI sauf que lorsque je vérifie la valeur stockée dans la bdd par PhpMyadmin ce n'est pas la bonne.

Pour faire simple:

Je crée un id temporaire, $Idtemp = 'toto';

Le script met l'enregistrement 'id_temp' à jour dans la bdd.
Je vérifie alors la valeur stockée avec PhpMyadmin.
Surprise la valeur stockée est 'titi';

Je crée alors une requete pour voir le résultat via le script.
Je fais un echo du mysql_resut($requete3,0,'id_temp');
Surprise le résultat donne 'toto' !

Mon problème est qu'un autre script utilisant $Idtemp donc 'toto' pour identifier le document en question ne trouve rien vu que la valeur stockée est 'tata'.

heu... suis-je clair ?

Je

Eléphant du PHP | 84 Messages

28 févr. 2006, 01:12

C'était moi ci-dessus ...

ViPHP
fab
ViPHP | 2657 Messages

28 févr. 2006, 01:36

tu passes peut être ces données via des formulaires non conformes ou avec des bizzareries que seul IE peut comprendre.
Je rejoin ce que dis Cyrano le naviguateur n'a aucune influence sur l'éxécution du code php et heuresement !!!!!!
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }