Exection 2 fois du code?

vieaiepie Messages postés 4 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 29 mars 2006 - 5 mars 2006 à 10:57
thomvaill Messages postés 366 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 20 février 2007 - 6 mars 2006 à 13:47
Bonjour,


J'ai fais un fichier php qui permet d'importer des données à partir d'un fichier texte (fichier de 400 lignes de code que je ne vais pas détailler ici). Ce fichier est lancé à partir d'un formulaire en methode post.
J'ai l'impression que le code est executé 2 fois, je comprends pas pourquoi, un exemple cette fonction


function retour_id_pseudo($pseudo) {
$pseudo=substr($pseudo,0,25);
$query="select id_pseudo from ged_pseudo where pseudo='".$pseudo."'";
$result = mysql_query($query);
if ($val = mysql_fetch_array($result)) {
return $val["id_pseudo"];
}
else {
$query="insert into ged_pseudo values ('','".$pseudo."')";
$result=mysql_query($query);
$query="select id_pseudo from ged_pseudo where pseudo='".$pseudo."'";
$result = mysql_query($query);
if ($val = mysql_fetch_array($result)) {
return $val["id_pseudo"];
}
}
return 0;
}


Est lancé un seul fois a partir du script, mais le pseudo est inséré 2 fois dans la base.
J'ai peut etre oublier quelque chose, mais je comprends pas.


Merci a tout ceux qui pourront m'aider.


Marie.

7 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
5 mars 2006 à 11:34
Salut,

tu fais

"$result=mysql_query($query);



et ensuite :


$result = mysql_query($query);"



donc tu écrases la première variable avant de l'avoir exploitée



à+
0
vieaiepie Messages postés 4 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 29 mars 2006
5 mars 2006 à 11:40
Salut,

oui , j'ecrase la variable!!
Cette fonction permet de si le pseudo exsite, il renvoir le id_pseudo, sinon, il insere une nouvelle ligne dans la table, et envoi le id_pseudo du nouveau créé.

Mais cette focntion est appellé qu'une seule fois a partir du fichier script, et qu'il inserer '(pas toujours) 2 fois un nouveau pseudo.

C'est juste un exemple de mon script, il le fait avec d'autre fonction ....

J'ai l'impression que mon fichier php est lancé 2 fois en simultanée, enfin, je comprends pas vraiment!!! Ya pas une truc de timeout a faire, ou je sais pas moi !!!

Merci encore . Marie.
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
5 mars 2006 à 11:49
Ah pardon, j'ai lu un peu vite.

bon mais à partir du code que tu nous montres, je pensequ'il n'y a aucune raison que le pseudo soit enregistré 2 fois.

Cherche plutôt si tu n'appelles pas 2 fois ta fonction.

à+
0
vieaiepie Messages postés 4 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 29 mars 2006
5 mars 2006 à 11:55
Et non, je n'appelle pas 2 fois la fonction...; :(
voici la ligne d'appel de la fonction
$id_pseudo=retour_id_pseudo($_POST['Pseudo']);
echo "id pseudo= ".$id_pseudo."
";

En plus, il n' y a pas que la que ca merdouille !!!! cette fonction est juste un exemple, en fait, dans certain cas (mias je n'arrive pas a comprends quand) j'ai l'impresion que le fichier php principal est executé 2 fois, alors qu'il est lancé à partir d'un formulaire mais il ecrit les echo qu'une seule fois, c'est un truc de dingueeeeeeeeee

:-(

Marie.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
5 mars 2006 à 13:49
if ($val = mysql_fetch_array($result)) {

Doc de PHP.net :

Retourne un tableau qui correspond à la ligne récupérée ou <tt>FALSE</tt>
s'il n'y a plus de lignes.

Revoit l'utilisation du fetch_array()... !
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
5 mars 2006 à 15:02
Au passage, après un insert(), tu peux utiliser mysql_insert_id() pou récupérer l'ID du champ en AUTO INCREMENT d'une base SQL sans avoir à refaire un SELECT derrière !

C'est un peu mal codé je trouve ...
0
thomvaill Messages postés 366 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 20 février 2007 2
6 mars 2006 à 13:47
Pour voir si la fonction est appellée deux fois, rajoute un
echo('blah'); dedans.. Si il y a 2 blah ça veux dire qu'elle est
executée deux fois ^^

Thomvaill
IRC : Thomas (irc.heliosnet.org:6667 #programmation)
0
Rejoignez-nous