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 :

Fonctions MySQL et phpMyAdmin


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut Fonctions MySQL et phpMyAdmin
    Bonjour.
    Après avoir lu les tutos et essayé de créer une fonction mysql, je me rends compte que je n'y arrive pas.
    J'ai donc 2 questions :
    1 - Est ce que quelqu'un peut me fournir une fonction simple de type addition(int a, int b) return INT que je puisse executer dans phpMyAdmin ?
    2 - Est ce que quelqu'un peut me fournir me donner le code pour l'éxécuter ? (CALL addition(2,3), ?)
    3 - Où voit t-on les fonctions créées dans phpMyAdmin ?
    D'avance merci.
    Je n'ai rien trouvé de clair et simple là dessus.

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 861
    Par défaut
    Salut 69Pierre.

    1) J'ai répondu à votre question dans l'autre sujet.

    2) le CALL, c'est pour les procédure stockée, et non pour appeler une fonction.

    3) on voie les fonctions dans votre base de données, sous le nom de "fonctions".

    @+

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Merci.
    Je ne trouve pas où dans phpmyadmin sont les fonctions.
    Mais je vais avancer avec ce que tu m'a fourni.

    Citation Envoyé par Artemus24 Voir le message
    Salut 69pierre.

    Le source du script :
    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
    85
    86
    87
    88
    SET AUTOCOMMIT = 0;
    START TRANSACTION;
     
    -- ======================
    -- Base de Données `base`
    -- ======================
     
    DROP DATABASE IF EXISTS `base`;
     
    CREATE DATABASE `base`
        DEFAULT CHARACTER SET `latin1`
        DEFAULT COLLATE       `latin1_general_ci`;
     
    use `base`;
     
    -- ============
    -- Table `test`
    -- ============
     
    DROP TABLE IF EXISTS `test`;
     
    CREATE TABLE `test`
    ( `id`         integer unsigned not null auto_increment primary key,
      `categorie`  integer unsigned not null,
      `produit`    varchar(255)     not null,
      `prix`       decimal(15,2)    not null
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED;
     
    -- ==================
    -- Function `chgdate`
    -- ==================
     
    DELIMITER $$
     
    CREATE FUNCTION `somme`(_cat integer unsigned) RETURNS decimal(15,2)
      DETERMINISTIC
      LANGUAGE SQL
    BEGIN
      DECLARE _som DECIMAL(15,2);
     
      SET _SOM = (select sum(prix) from `test` where categorie = _cat);
     
      RETURN _SOM;
    END$$
     
    DELIMITER ;
     
    -- =====================
    -- Insertion dans `test`
    -- =====================
     
    insert into `test` (`categorie`,`produit`,`prix`) values
      (1, 'produit A', 10.00),
      (2, 'produit B', 20.00),
      (3, 'produit C',  5.50),
      (1, 'produit D',  8.50),
      (1, 'produit E',  3.00),
      (2, 'produit F', 14.25),
      (1, 'produit G', 11.50),
      (2, 'produit H', 32.75),
      (1, 'produit J', 17.00),
      (3, 'produit J', 14.50);
     
    -- ================
    -- Vidage de `test`
    -- ================
     
    select * from `test`;
     
    -- ============
    -- Requête N°1
    -- ============
     
    select somme(1);
     
    select somme(2);
     
    select somme(3);
     
    -- ===
    -- Fin
    -- ===
     
    COMMIT;
    SET AUTOCOMMIT = 1;
    exit
    L'exécution du script :
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
        DEFAULT CHARACTER SET `latin1`
        DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `test`
    --------------
     
    --------------
    CREATE TABLE `test`
    ( `id`         integer unsigned not null auto_increment primary key,
      `categorie`  integer unsigned not null,
      `produit`    varchar(255)     not null,
      `prix`       decimal(15,2)    not null
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    CREATE FUNCTION `somme`(_cat integer unsigned) RETURNS decimal(15,2)
      DETERMINISTIC
      LANGUAGE SQL
    BEGIN
      DECLARE _som DECIMAL(15,2);
     
      SET _SOM = (select sum(prix) from `test` where categorie = _cat);
     
      RETURN _SOM;
    END
    --------------
     
    --------------
    insert into `test` (`categorie`,`produit`,`prix`) values
      (1, 'produit A', 10.00),
      (2, 'produit B', 20.00),
      (3, 'produit C',  5.50),
      (1, 'produit D',  8.50),
      (1, 'produit E',  3.00),
      (2, 'produit F', 14.25),
      (1, 'produit G', 11.50),
      (2, 'produit H', 32.75),
      (1, 'produit J', 17.00),
      (3, 'produit J', 14.50)
    --------------
     
    --------------
    select * from `test`
    --------------
     
    +----+-----------+-----------+-------+
    | id | categorie | produit   | prix  |
    +----+-----------+-----------+-------+
    |  1 |         1 | produit A | 10.00 |
    |  2 |         2 | produit B | 20.00 |
    |  3 |         3 | produit C |  5.50 |
    |  4 |         1 | produit D |  8.50 |
    |  5 |         1 | produit E |  3.00 |
    |  6 |         2 | produit F | 14.25 |
    |  7 |         1 | produit G | 11.50 |
    |  8 |         2 | produit H | 32.75 |
    |  9 |         1 | produit J | 17.00 |
    | 10 |         3 | produit J | 14.50 |
    +----+-----------+-----------+-------+
    --------------
    select somme(1)
    --------------
     
    +----------+
    | somme(1) |
    +----------+
    |    50.00 |
    +----------+
    --------------
    select somme(2)
    --------------
     
    +----------+
    | somme(2) |
    +----------+
    |    67.00 |
    +----------+
    --------------
    select somme(3)
    --------------
     
    +----------+
    | somme(3) |
    +----------+
    |    20.00 |
    +----------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
    Appuyez sur une touche pour continuer...
    @+

  4. #4
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 861
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 861
    Par défaut
    Salut 69Pierre.

    Dans la colonne de gauche, là où il y a le titre "phpmyadmin", vous cliquez sur le nom de votre base afin d'ouvrir l'arborescence.
    Chez moi, le nom, c'est "base". Normalement, vous avez deux lignes, une avec "fonctions " et une avec "tables".

    @+

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Merci.
    J'ai tout ce qu'il me faut maintenant.
    Je trouve la fonction que tu propose dans l'onglet plus / procédures stockée.
    Il n'y avait rien avant parce que ma création était en erreur.
    J'ai compris ce qui me bloquait.
    Je continue.
    A bientôt.

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

Discussions similaires

  1. équivalent fonction mysql C en php
    Par splouf dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 22/01/2006, 19h41
  2. [fonction MySQL] test d'une expression
    Par spilliaert dans le forum Débuter
    Réponses: 5
    Dernier message: 05/01/2006, 12h36
  3. Pb avec fonctions MYSQL
    Par tonton54 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 07/10/2005, 22h54
  4. Problème avec mon service mysql et PhpMyAdmin
    Par Fixazo dans le forum Outils
    Réponses: 1
    Dernier message: 28/08/2005, 18h02
  5. MySQL et phpMyAdmin
    Par HULK dans le forum Installation
    Réponses: 4
    Dernier message: 29/08/2003, 18h07

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