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 :

[PostGreSQL] problème sur une fonction avec connexion


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 52
    Points : 35
    Points
    35
    Par défaut [PostGreSQL] problème sur une fonction avec connexion
    Bonjour à tous,
    j'ai un petit problème avec une fonction que j'ai développée en PHP.
    cette fonction est appelé par un client SOAP

    mais le problème est que je n'arrive pas à interroger ma base de données depuis l'intérieur de la fonction.

    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
     
    function neworderretailer($params) 
    	{
     
         //recupération de paramètres reçus:
         $peOrderitems = $params->peOrderitems;
         $peProductorid = $params->peProductorid;
         $idprod = $peOrderitems->idprod;
         $quantite = $peOrderitems->quantite;
         $peSignature=$params->peSignature;
     
         //INSERTION DE LA COMMANDE DANS LA TABLE COMMANDES
     
         //1.-RECUPERER LE CODE DE NOUVELLE COMMANDE DU DETAILLANT "retailerid"
     
    		$query="SELECT nextval('numcommande')";
    		$result=pg_query($db_conn,$query);
    		$numAuto = pg_fetch_result($result,0,0);
    		//on stocke la valeur que l'on retournera s'il n'y a pas d'erreur
     
     
    		if (!$result) {
      		// "Une erreur s'est produite.\n";
      		$resultat=array('result' => 0);
                    }
                    else
                     {
                       $resultat = array('result' => $numAuto);
                     }
     
     
    		//2.- RECUPERER LA CLE PRIMAIRE DU PRODUCTEUR POUR LA CLE ETRANGERE DE LA COMMANDE
    		$query='SELECT "CODE" FROM "PRODUCTEUR" WHERE "LIBELLE"='."'ESNE'";
    		$result1=pg_query($db_conn,$query);
    		$Productorid = pg_fetch_result($result1,0,0);
    		if (!$result1) {
      		// "Une erreur s'est produite.\n";
      		$resultat=array('result' => 1);}
     
    		//3.-RECUPERER LA CLE PRIMAIRE DU PRODUIT POUR LA CLE ETRANGERE DE LA COMMANDE
     
    		//$query='SELECT "NUMERO" FROM "PRODUIT" WHERE "CODE"='.$idprod;
    		$query='SELECT "NUMERO" FROM "PRODUIT" WHERE "CODE"=9003';
    		$result2=pg_query($db_conn,$query);
    		$numproduit = pg_fetch_result($result2,0,0);
    		if (!$result2) {
      		// "Une erreur s'est produite.\n";
      		$resultat=array('result' => 2);}
     
    		//UNE FOIS TOUTES LES DONNEES REUNIES, NOUS POUVONS REMPLIR LA TABLE COMMANDE
    		$query='INSERT INTO COMMANDE (NUMERO, SIGNATURE, NUM_PRODUCTEUR) VALUES (''.$numAuto.'',''.$peSignature.'',''.$Productorid.'')';
    		$result=pg_query($db_conn,$query);
    		if (!$result) {
      		// "Une erreur s'est produite.\n";
      		$resultat=array('result' => 3);}
    		//CREATION D'UNE LIGNE DE COMMANDE
    		$query='INSERT INTO LIGNECOMMANDE ( QUANTITE, NUM_COMMANDE, NUM_PRODUIT) VALUES (''.$quantite.'',''.$numAuto.'',''.$numproduit.'')';
    		$result=pg_query($db_conn,$query);
    		if (!$result) {
      		// "Une erreur s'est produite.\n";
      		$resultat=array('result' => 4);}
     
             // retourner un identifiant unique pour la commande//
     	 //si $resultat =0 alors erreur!
     
         return array('result' =>$numAuto.','.$Productorid.','.$numproduit);
     
    	}
    voilà
    ma fonction devrait me retourner les paramètres que j'ai demandé à la BD mais elle ne me retourne rien

    par contre j'ai essayé de faire la même chose dans un simple fichier php, sans passer par une fonction et cela fonctionne correctement.

    qq aurait une idée??

    Merci d'avance!

    PS: les fichier de connexion et déconnexion respectives fonctionnent correctement.

  2. #2
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    Je me trompe peut-être mais cette ligne ne m'inspire pas confiance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     return array('result' =>$numAuto.','.$Productorid.','.$numproduit);
    Tu ne voudrais pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     return array('result' =>$numAuto,$Productorid,$numproduit);
    ?
    Mes articles Développez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    merci d ta réponse!
    en fait les virgules sont comme ça pour les afficher à l'écran, donc cela est juste
    mais de toute façon, je n'ai que les virgules comme résultat, car les variables ne sont pas affectées

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    alors ce que j'ai fait, c'est simplement créer une nouvelle page php qui contient une fonction toute simple ( sans classe) qui fait un select. de cette façon je px voir les erreurs.

    l'erreur est le suivant:

    Warning: pg_query(): supplied argument is not a valid PostgreSQL link resource in D:\www\demonstrateur\detaillant\essai.php on line 16

    Warning: pg_fetch_result(): supplied argument is not a valid PostgreSQL result resource in D:\www\demonstrateur\detaillant\essai.php on line 17

    J'ai lu qu'il pourrait s'agir du fichier pg_hba.conf mais j'ai modifié les paramètres avec:
    host all all 157.26.179.0/24 md5
    ou
    host all all 127.0.0.1/32 md5

    mais ca n'a pas l'air de changer qqch

Discussions similaires

  1. Problème sur une requete avec fonction
    Par amelyfred dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/07/2015, 08h12
  2. creer un order sur une fonction avec criteria
    Par maouth dans le forum Hibernate
    Réponses: 12
    Dernier message: 09/09/2008, 15h57
  3. Réponses: 3
    Dernier message: 23/08/2007, 00h39
  4. Problème sur une requete avec champ date
    Par islande dans le forum Access
    Réponses: 2
    Dernier message: 21/09/2006, 19h39
  5. Erreur sur une fonction avec des paramètres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/05/2004, 21h00

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