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 :

Requete mysql marche pas [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Par défaut Requete mysql marche pas
    Bonjour,

    J'ai une requête suivante qui fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     $a = time() ;
    	 $b = $product['reference'];
    	 $addition = $a + $b;
    	 $abonnement=date('M d Y H:i:s', $addition);
     
    		$req = "INSERT INTO radcheck (id, username, attribute, op, value) 
                VALUES ( '', '$customer->email', 'Expiration', ':=', '$abonnement')"; 
                mysql_query($req);
    Mais je voudrais la modifier en fonction de la valeur de $product['reference']; alors je fais comme ceci:
    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
     
    	 $a = time() ;
    	 $b = $product['reference'];
    	 $addition = $a + $b;
    	 $abonnement=date('M d Y H:i:s', $addition);
     
     
    if ($product['reference'] = 31622412)
     
    	{
    	$req = "INSERT INTO radcheck (id, username, attribute, op, value) 
                VALUES ( '', '$customer->email', 'Expiration', ':=', '$abonnement')"; 
                mysql_query($req); 
    	$req = "INSERT INTO radcheck (id, username, attribute, op, value) 
                VALUES ( '', '$customer->email', 'Time', ':=', '100000000')"; 
                mysql_query($req);
    	}
    	else
     
    		$req = "INSERT INTO radcheck (id, username, attribute, op, value) 
                VALUES ( '', '$customer->email', 'Expiration', ':=', '$abonnement')"; 
                mysql_query($req);
    Mais malgré la valeur $product['reference'] différente toutes les requête sont exécutes.
    De plus la ligne '', '$customer->email', 'Time', ':=', '100000000') est insérée 2 fois.

    Ou est l'erreur?

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonsoir,

    Oui en ligne 8 le signe de comparaison est erroné : manque un =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($product['reference'] == 31622412)
    et sors tes mysql_query de ton if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (test) {
       $sql = '...';
    }
    else {
       $sql = '...';
    }
    mysql_query($sql);
    D'ailleurs tu as oublié les accolades du else (ligne 18) et dans ton code la ligne 22 sera toujours exécutée vu qu'elle est en dehors de la clause if/else...
    Je ne pense pas que cela soit voulu (raison du doublon lors de l'insertion).
    Toujours mettre des accolades. Ou très bien présenter son code pour lever toute ambiguïté.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut
    Le "=" au lieu de "==", ton if est toujours vrai. Donc toujours exécuté.

    Et effectivement comme dit rawsrc, ton else n'est pas entre accolades, donc s'arrête au prochain point-virgule ;

    mysql_query($req); ligne 22 est après ce point-virgule. Donc $req contients encore ce que tu as mis ligne 14-15.

    Au total tu dois avoir 3 requêtes à chaque fois, dont 2 fois la même.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 2
    Par défaut
    Merci pour vos réponses.

    Tout fonctionne désormais.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] ma requete ne marche pas
    Par fk04 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/02/2010, 13h00
  2. requete qui marche pas top
    Par kaking dans le forum Langage SQL
    Réponses: 6
    Dernier message: 13/01/2009, 08h27
  3. requete ne marche pas
    Par Stéph utilisateur d'acces dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 25/12/2008, 20h24
  4. [MySQL] DELETE en cascade..ma requete ne marche pas
    Par debie1108 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/10/2006, 16h54

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