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 :

Calculs sous PHP ou dans fonctions PostgreSQL


Sujet :

PHP & Base de données

  1. #1
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut Calculs sous PHP ou dans fonctions PostgreSQL
    Bonjour à tous.

    Je suis nouveau sur PHP/Postgres, j'essaie de m'adapter
    Je suis en train d'effectuer un portage d'applications Oracle PL/SQL Web vers PHP/Postgres.
    Sur Oracle disons que j'ai la procédure suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE OR REPLACE PROCEDURE test IS
      v_val_1 PLS_INTEGER;
      v_val_2 PLS_INTEGER;
    BEGIN
      SELECT val_1, val_2 INTO v_val_1, v_val_2 FROM nom_table;
      IF (v_val_1 + v_val_2 > 50) THEN
        htp.print('<html><body>Supérieur à 50</body></html>');
      END IF;
    END;
    PL/SQL fait tout : calculs, contrôles, affichage HTML là.
    Ma question est : est il préférable d'effectuer les calculs et contrôles sous PHP :
    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
     
    <?php
    $conn = pg_connect("host=$dbhost dbname=$dbname port = $dbport user=$dbuser password=$dbpwd")
        or die('Connexion impossible : ' . pg_last_error());
    $sql = "select val_1, val_2 from nom_table";
    $result = pg_query($conn, $sql) or die('Echec requête : ' . pg_last_error());
    $arr = pg_fetch_array ($result);
    $v_val_1 = $arr['val_1'];
    $v_val_2 = $arr['val_2'];
    IF ($v_val_1 + $v_val_2 > 50)
    {
    echo "supérieur à 50";
    }
    pg_close($conn);
    ?>
    ou bien créer une fonction PlPgSql qui retournera "Supérieur à 50" si v_val_1 + v_val_2 > 50.

    Voilà j'espère que vous avez compris ma question
    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Points : 50
    Points
    50
    Par défaut
    Salut,

    C'est le problème classic qu'on se pose souvent à savoir mettre de l'intelligence de la bdd ou dans le code php.

    Dans le cas présent, vu le peu d'intelligence demandé, j'aurais tendance à dire le mettre dans ta procedure stockée.

    Par contre coté philosophie et évolution je pense qu'une telle intelligence ( renvoi de message spécifique etc... ) n'a rien a faire en bdd. Coté évolution par la suite, dans X temps tu auras peut être d'autre cas ou un retour différent à effectuer.

    Pour résumé, a ta place je le metterais dans ton code php.

  3. #3
    Membre habitué Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 187
    Points
    187
    Par défaut
    Bonjour.
    Merci pour la réponse.
    Dans le cas présent, vu le peu d'intelligence demandé, j'aurais tendance à dire le mettre dans ta procedure stockée.
    Justement les procédures stockées à traduire sont assez complexes. J'ai seulement écrit ces exemples pour pouvoir expliquer mon cas.
    Côté ergonomie, il faut que je choisisse de confier soit à PHP seul ou à Postgres seul l'"intelligence", comme vous le dites, afin de ne pas trop éparpiller les codes.
    Mais il faut aussi que je pense côté performance. Là j'ai pas assez d'expérience, donc je me tourne vers vous.
    Merci.

Discussions similaires

  1. [PHP 5.2] Les accents sous PHP et dans MySql
    Par aspkiddy dans le forum Langage
    Réponses: 5
    Dernier message: 19/08/2010, 22h36
  2. problème de calcul sous php
    Par melatonin dans le forum Langage
    Réponses: 1
    Dernier message: 28/04/2010, 19h26
  3. [PHP-JS] une fonction dans une fonction
    Par lodan dans le forum Langage
    Réponses: 6
    Dernier message: 25/06/2006, 19h14
  4. [PHP-JS] pb de variable php dans fonction Js
    Par logone dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2006, 23h20
  5. [MySQL] Fonctions calculs SQL/PHP pour projet football
    Par spamyx dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 16h16

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