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

SQL Procédural MySQL Discussion :

SQLSTATE[42000]: Syntax error or access violation: 1172 Result consisted of more than one row pour une valeur [MySQL-5.1]


Sujet :

SQL Procédural MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Points : 117
    Points
    117
    Par défaut SQLSTATE[42000]: Syntax error or access violation: 1172 Result consisted of more than one row pour une valeur
    Bonjour,

    Je galère depuis un bout de temps maintenant sur une procédure stockée : quand je la lance manuellement dans un client MySQL, pas de problème, elle s'exécute sans problème quand je lui passe une valeur donnée (c'est pour déboguer en fait), mais quand cette procédure stockée est appelée dans un code PHP, quand je lui transmet cette même valeur, j'ai le message suivant qui apparait :
    SQLSTATE[42000]: Syntax error or access violation: 1172 Result consisted of more than one row
    D'avance merci pour votre aide

    Voici ma procédure stockée complète :
    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
    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
    78
    79
    80
    81
    82
    83
    84
     
    BEGIN
     
    	DECLARE resaClientId INT;
    	DECLARE resaMontantTotal INT;
    	DECLARE resaDateMeilleureNuitee VARCHAR(32);
    	DECLARE resaRoom VARCHAR(32);
    	DECLARE resaMeilleureNuiteeMontant VARCHAR(32);
    	DECLARE resaDateArrivee VARCHAR(32);
    	DECLARE resaDateDepart VARCHAR(32);
    	DECLARE resaNbNuitee INT;
    	DECLARE resaPMS VARCHAR(32);
    	DECLARE resaBlocDirecteur INT;
    	DECLARE clientOptinPS INT;
    	DECLARE clientOptinPromo INT;
     
    	SELECT DISTINCT client_id, optin_post_sejour, optin_email_promo INTO @resaClientId, @clientOptinPS, @clientOptinPromo
    	FROM finalclients 
    	WHERE client_id_pms = valeur3 
    	LIMIT 1;
     
      IF @resaClientId IS NOT NULL THEN
     
    		SELECT DISTINCT date_nuitee INTO @resaDateArrivee 
    		FROM fidelioresaslivelocal 
    		WHERE resa_num_pms = valeur1 
    		ORDER BY date_nuitee ASC
    		LIMIT 1;
     
    		SELECT DISTINCT date_nuitee INTO @resaDateDepart 
    		FROM fidelioresaslivelocal 
    		WHERE resa_num_pms = valeur1 
    		AND depart = "Y"
    		ORDER BY date_nuitee DESC
    		LIMIT 1;
     
    		SELECT SUM(resa_montant) INTO @resaMontantTotal
    		FROM fidelioresaslivelocal 
    		WHERE resa_num_pms = valeur1
    		AND room = valeur2
    		AND NULLIF(depart,'N') IS NULL
    		GROUP BY resa_num_pms, room
    		LIMIT 1;
     
    		SELECT DISTINCT date_nuitee, room, resa_montant INTO @resaDateMeilleureNuitee, @resaRoom, @resaMeilleureNuiteeMontant
    		FROM fidelioresaslivelocal 
    		WHERE resa_num_pms = valeur1 
    		AND room = valeur2
    		AND NULLIF(date_nuitee,'N') IS NULL
    		GROUP BY room
    		ORDER BY resa_montant DESC, date_nuitee DESC
    		LIMIT  1;
     
    		SELECT COUNT(DISTINCT date_nuitee) INTO @resaNbNuitee 
    		FROM fidelioresaslivelocal 
    		WHERE resa_num_pms = valeur1
    		AND room = valeur2
    		AND NULLIF(depart,'N') IS NULL
    		GROUP BY resa_num_pms, room
    		LIMIT 1;
     
     
    		UPDATE finalresas
    		SET 
    		resa_client_id = @resaClientId,
    		resa_montant_total = @resaMontantTotal,
    		resa_nb_nuitee = @resaNbNuitee,
    		date_meilleure_nuitee = @resaDateMeilleureNuitee,
    		room = valeur2,
    		resa_meilleure_nuitee_montant = @resaMeilleureNuiteeMontant,
    		resa_date_arrivee = @resaDateArrivee,
    		resa_date_depart = @resaDateDepart,
    		resa_bloc_directeur = IF(((@clientOptinPS = 0) && (@clientOptinPromo = 0)), 1, 0),
    		resa_vip = IF((@resaMeilleureNuiteeMontant >= get_seuil_vip_fidelio()), 1,0)
    		WHERE resa_num_pms = valeur1 
        AND room = valeur2
        AND resa_num_client_pms = valeur3
    		LIMIT 1;
     
    		CALL actions_post_update_clients(@resaClientId);
     
      END IF;
     
    END

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur d'études en développements techniques
    Inscrit en
    Novembre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en développements techniques
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 244
    Points : 117
    Points
    117
    Par défaut Réponse
    Cela indique que je dois absolument utiliser les curseurs.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/05/2014, 16h32
  2. [PDO] Erreur louche : 'SQLSTATE[42000]: Syntax error or access violation: 1064'
    Par oliopur dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/03/2012, 17h10
  3. [MySQL] Erreur SQL : SQLSTATE[42000]: Syntax error or access violation: 1064
    Par petit.quent dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/12/2011, 16h13
  4. [MySQL] [MySQL] SQLSTATE[42000]: Syntax error or access violation: 1064
    Par Domotik35 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/07/2011, 16h42
  5. [PDO] Erreur incompréhensible : 'SQLSTATE[42000]: Syntax error or access violation: 1064'
    Par cyril_k dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/12/2008, 12h12

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