IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requête qui se doublonne


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut Requête qui se doublonne
    Salut à tous,

    il m'arrive un truc très bizarre la. j'ai un code tout simple avec une reqette mysql. Elle s'execute bien une fois (si je fait un echo test juste avant j'ai juste test et pas testtest) et pourtant quand je vais voir dans ma table à chaque fois j'ai l'élement qui c'est inséré en double (avec juste l'id de clé primaire qui diffère).

    Je trouve ca vraiment bizarre et je n'arrive vraiment pas à voir d'où vient le problème.

    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
     
    if(isset($_GET['demandemodcritanime']))
    	{
    		$demandeserie=mysql_real_escape_string($_GET['titre']);
    		$idserie=mysql_real_escape_string($_GET['idserie']);
    		$demandeurtest=mysql_real_escape_string($_GET['Nom']);
    		$type='critiqueanime';
    		$demandeur=$_SESSION['Nom'];
    		if($demandeur==$demandeurtest)
    		{
    			//La date actuelle:
    			$dateactu=date("U");
    			$date=date("Y-m-d H:i:s" , $dateactu );
    			$type='critiquedvd';
    			$sql="INSERT INTO `demandecritique` (`Nom` , `type` , `demandeur` , `date` , `statut` , `idcrit`) VALUES ('$demandeserie' , '$type' , '$demandeur' , '$date' , '4' , '$idserie');";
    			mysql_query($sql);
    			echo 
    '				<div class="cadreform">
    					<div class="cadreformtop">
    						Demande pour modifier une critique anime:
    					</div>
    					<div class="cadreformcenter">
    						<table>
    							<tr>
    								<td>
    									<div class="patientez">Patientez...</div>
    								</td>
    							</tr>
    						</table>
    					</div>
    					<div class="cadreformbottom">
    					</div>
    				</div>
    			';
    		}
    avez vous une idée?

    merci d'avance!

  2. #2
    Membre émérite
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Par défaut
    ça va pas t'aider des masses mais bon :

    - si tu cherches "double" dans ce forum tu verras que d'autres personnes ont eu le même cas que toi : requête appelée une fois, table avec clé primaire auto-incrémentée, enregistrement effectué 2 fois
    et j'ai regardé, personne n'a trouvé de solutions (en tout cas, dans les topics que j'ai lus)

    - pas de ; à la fin de la requête

    désolé de pas pouvoir plus t'avancer :/
    Dia [ Page DVP ] [ Site pro ]

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1
    Par défaut Si ça peut t'aider
    Salut,

    En fait, une requête qui se joue 2 fois, c'est que le script qui fait la requête est appellé deux fois.

    Dans les cas possible il y a :
    - la procédure réalisant la requete est appellé 2 fois
    (tu peux le debugge en rajoutant un trigger_error qui sera visible dans tes logs)
    - la page est appellée 2 fois
    (tu peux le debugger avec un outil de forwarding tcp)

    Si ce n'est pas la procédure, c'est la page.
    Par exemple, si ton code PHP qui fait la requete est joué quand on accède à www.tondomaine.com.
    Si la page affichée est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <html>
    <body>
    <img src="/" />
    </body>
    </html>
    Ton script PHP qui affiche l'HTML joue la requête et ensuite, ton image qui pointe vers "www.tondomaine.com/" va en fait à la même adresse et fait ainis la même chose.

    Pour traquer ce genre de problème, tu peux utiliser un outil de TCPForwarding comme : http://www.pocketsoap.com/tcptrace/.

    J'espère que cela peut t'aider.

  4. #4
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    Ce qui est bizarre c'est que juste au dessus j'ai une structure similaire qui marche très bien, je ne voit pas de différence qui pourraient expliquer se phénomène.

    Voici le code de la structure qui marche:

    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
     
    if(isset($_GET['demandecritanime']))
    	{
    		$demandeserie=mysql_real_escape_string($_POST['nouvserie']);
    		$typeanime=mysql_real_escape_string($_POST['type']);
    		$demandeur=$_SESSION['Nom'];
     
    		//La date actuelle:
    		$dateactu=date("U");
    		$date=date("Y-m-d H:i:s" , $dateactu );
    		$type='critiqueanime';
    		$sql="INSERT INTO `demandecritique` (`Nom` , `type` , `demandeur` , `date` , `typeanime`) VALUES ('$demandeserie' , '$type' , '$demandeur' , '$date' , '$typeanime');";
    		mysql_query($sql);
    		echo '
    			<div class="cadreform">
    				<div class="cadreformtop">
    					Demande pour faire une critique anime:
    				</div>
    				<div class="cadreformcenter">
    					<table>
    						<tr>
    							<td>
    								<div class="patientez">Patientez...</div>
    							</td>
    						</tr>
    					</table>
    				</div>
    				<div class="cadreformbottom">
    				</div>
    			</div>
    			';
    			echo '<meta http-equiv="refresh" content="1;URL=?demandecritiqueanime2='.$demandeserie.'">';
    	}
    ps: Ca fait le même "bug" sous IE et FF.

  5. #5
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Par défaut
    Si tu fais un mysql_close() juste en dessous de ta requête ca te l'execute quand même deux fois ?

  6. #6
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    Citation Envoyé par J0r_x
    Si tu fais un mysql_close() juste en dessous de ta requête ca te l'execute quand même deux fois ?
    Non elle ne s'effectue qu'une seul fois quand je met mysql_close. Par contre si je fait ca je suis obliger de refaire une connection, et ca va allourdir un peu la page non?

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/10/2005, 15h05
  2. Une requête qui ne reconnait pas is not null
    Par LeBauw dans le forum Access
    Réponses: 2
    Dernier message: 08/09/2005, 12h29
  3. Requête qui ne passe pas
    Par TheBart dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/08/2005, 10h12
  4. [...] doit utiliser une requête qui peut être mise à jour
    Par requiemforadream dans le forum ASP
    Réponses: 4
    Dernier message: 26/04/2005, 09h12
  5. Problème requête qui renvoie plusieurs
    Par dai.kaioh dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/04/2004, 10h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo