Messages d'ereur

Résolu
Bonjour,j'ai installer séparement wampserver et postgreSQL sur ma machine,et j'aimerais me connecter à partir de wamp à ma base de données postgreSQL et à chaque fois j'obtiens ces 2 mesages d'ereur

Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: invalid connection option "hostname" in C:\wamp\www\gdt\postgreSQL.php on line 12

Warning: pg_close() expects parameter 1 to be resource, boolean given in C:\wamp\www\gdt\postgreSQL.php on line 16
et voici mon code de conexion
<?php
$conn =("hostname=localhost port=5432 dbname= gdt user=postgres password=lavielle");
$dbconn = pg_connect("$conn");
// connexion à une base de données nommée "gdt" sur l'hôte "localhost" avec un
// nom d'utilisateur"postgres" et un mot de passe"lavielle"

pg_close($dbconn);

?>
merci de m'aider ça fait des jours que je tourne en rond et pourtant ces informations sont les bonnes.aidez moi svp
Configuration: Windows XP Internet Explorer 7.0

17 réponses

  1. Contributeur
    Invalid connection option "hostname" ==> L'option hostname dans ta ligne $conn n'existe visiblement pas.

    IL ne s'agirait pas plutôt de host=?
    0
    1. bjour,
      ta raison hier en reflechissant bien j'ai finalement mis 'host' au lieu de 'hostname' et ça marché mais j'ai un autre problème et je voudrais connnaitre ton avis sur ça,après avoir me connecté à ma base de donnée ,j'ai lancer une requète sql et je veux afficher les resultats sous forme de tableau donc je reprends le code dépuis le début:

      <?php
      $conn =("hostname=localhost port=5432 dbname= gdt user=postgres password=lavielle");
      $dbconn = pg_connect("$conn");
      // connexion à une base de données nommée "gdt" sur l'hôte "localhost" avec un
      // nom d'utilisateur"postgres" et un mot de passe"lavielle"
      // lancement de la requète
      $sql = pg_query ("select* from projet");
      $resultat= pg_exec ($dbconn,$sql);
      // utilisation de la boucle tant que
      (while infos = pg_fetch_array($sql) ) {
      echo $ infos = [ id-projet];
      echo $ infos = [ nom-projet];
      echo $ infos = [ code-mo];
      echo $ infos = [ resultat-projet];
      echo $ infos = [ montant-projet];
      echo $ infos = [ code-localisation];
      echo $ infos = [ id-nature];
      echo $ infos = [ code-etat]; }

      pg_close($dbconn);
      ?>
      apparenment ma boucle n'est pas bien exécuté car ça m'affiche parse error. merci et j'attends vos suggestions avec imapatience
      0
    2. bjour,
      hier en reflechissant bien j'ai finalement mis 'host' au lieu de 'hostname' et ça marché mais j'ai un autre problème et je voudrais connnaitre vos avis sur ça,après avoir me connecté à ma base de donnée ,j'ai lancer une requète sql et je veux afficher les resultats sous forme de tableau donc je reprends le code dépuis le début:

      <?php
      $conn =("hostname=localhost port=5432 dbname= gdt user=postgres password=lavielle");
      $dbconn = pg_connect("$conn");
      // connexion à une base de données nommée "gdt" sur l'hôte "localhost" avec un
      // nom d'utilisateur"postgres" et un mot de passe"lavielle"
      // lancement de la requète
      $sql = pg_query ("select* from projet");
      $resultat= pg_exec ($dbconn,$sql);
      // utilisation de la boucle tant que
      (while infos = pg_fetch_array($sql) ) {
      echo $ infos [ id-projet];
      echo $ infos [ nom-projet];
      echo $ infos [ code-mo];
      echo $ infos [ resultat-projet];
      echo $ infos [ montant-projet];
      echo $ infos [ code-localisation];
      echo $ infos [ id-nature];
      echo $ infos [ code-etat]; }

      pg_close($dbconn);
      ?>
      apparenment ma boucle n'est pas bien exécuté car ça m'affiche parse error. merci et j'attends vos suggestions avec imapatience
      0
  2. Contributeur
    Tu as mis des espaces entre les $ et les infos?
    0
    1. merci pour les infos, je peux dire que cava bcoup mieux parce que j'obtiens ma page mais avec 2 messages d'ereur en tète de la page que je vais t'envoyer pour que tu regardes :
      Warning: pg_exec() [function.pg-exec]: Query failed: ERROR: syntax error at or near "@" LINE 1: $dbconn,$sql ^ in C:\wamp\www\gdt\postgreSQL.php on line 16
      2PUIT2réalisé6000002223AGRICULTURE3réalisé7000003331FORAGE1réalisé1000000111.le premier mesage on peut déchiffré ça mais le second j'avoue ne rien comprendre.à biento
      0
      1. je t'envoie le code que j'avais oublié
        <?php
        $conn =("host=localhost port=5432 dbname= gdt user=postgres password=lavielle");
        $dbconn = pg_connect("$conn");
        // connexion à une base de données nommée "gdt" sur l'hôte "localhost" avec un
        // nom d'utilisateur"postgres" et un mot de passe"lavielle"

        $sql = pg_query("select * from projet");
        $resultat=pg_exec('$dbconn,$sql');

        while($infos = pg_fetch_array($sql)) {
        echo $infos['id-projet'];
        echo $infos['nom-projet'];
        echo $infos['code-mo'];
        echo $infos['resultat-projet'];
        echo $infos['montant-projet'];
        echo $infos['code-localisation'];
        echo $infos['id-nature'];
        echo $infos['code-etat'];}
        pg_close($dbconn);
        ?>
        tes remarques seront les bien venues
        0
        1. Contributeur
          AH mon avis c'est ça qui cloche :

          $resultat=pg_exec('$dbconn,$sql');

          Essaie $resultat=pg_exec($dbconn,$sql); qui devrait mieux marcher.

          Loup.
          0
          1. J'ai plus de mesages d'erreur, mais j'obtiens toujours ce message :
            2PUIT2réalisé6000002223AGRICULTURE3réalisé7000003331FORA­­GE1réalisé1000000111
            en haut de ma page.html en verticale , ce charabia qui n'a rien avoir dans mon code , je t'envoie le code en intégralité pour que tu me donnes ton avis
            ?php
            $conn =("host=localhost port=5432 dbname= gdt user=postgres password=lavielle");
            $dbconn = pg_connect("$conn");
            // connexion à une base de données nommée "gdt" sur l'hôte "localhost" avec un
            // nom d'utilisateur"postgres" et un mot de passe"lavielle"

            $sql = pg_query("select * from projet");

            while($infos = pg_fetch_array($sql)) {
            echo $infos['id-projet'],'<br/>';
            echo $infos['nom-projet'],'<br/>';
            echo $infos['code-mo'],'<br/>';
            echo $infos['resultat-projet'],'<br/>';
            echo $infos['montant-projet'],'<br/>';
            echo $infos['code-localisation'],'<br/>';
            echo $infos['id-nature'],'<br/>';
            echo $infos['code-etat'],'<br/>'; }
            pg_close($dbconn);
            ?>
            finalement j'ai enveler cette partie $resultat=pg_exec('$dbconn,$sql');
            0
            1. Contributeur
              Ah mon avis ,cette ligne, ce sont les données de ta base.

              Concrètement tu ne fais que les requester, mais tu ne spécifies pas leur affichage, efin à moitié.

              Les © que l'on voit à mon avis ce sont les <br> que tu as essayé d'indiquer.

              Je te propose de faire :

              while($infos = pg_fetch_array($sql)) {
              echo $infos['id-projet']; echo "<br>";
              echo $infos['nom-projet']; echo "<br>";
              echo $infos['code-mo']; echo "<br/>";
              echo $infos['resultat-projet']; echo "<br/>";
              echo $infos['montant-projet']; echo "<br/>";
              echo $infos['code-localisation']; echo "<br/>";
              echo $infos['id-nature']; echo "<br/>";
              echo $infos['code-etat']; echo "<br/>";
              pg_close($dbconn);

              0
              1. Heu non rien à voir
                ca vient d'un mauvais encodage de tes pages. Du coup, les caractères "spéciaux" comme le "é" sont mal interprétés

                vas voir ici, t'as une explication primaire sur l'encodage UTF-8, qui fonctionne bien avec tous les caractères de toutes les langues :
                http://www.allhtml.com/articles/detail/896
                0
                1. Contributeur
                  OUi certes l'encodage mais si il laisse tel quel, il aura le même affichage.

                  Il faut donc bien qu'il sépare ses données pour les rendre visibles.
                  0
                  1. Ben non, faut juste rajouter une balise meta dans la page (et pendant qu'il y est un doctype aussi ^^) qui définirait un charset potable à sa page

                    séparer les echo ne résoudra rien ...
                    0
                    1. Contributeur
                      Mais je ne veux pas séparer les echo ^^

                      Ceux qu'il affiche dans son code ne marche pas, c'est pour ça que je donne l'autre.
                      0
                      1. Ben si ca marche son code ^^
                        enfin ca marche mais ca afficherait français si il changeait son charset, mais c'est tout ^^
                        0
                        1. Contributeur
                          Dans ce cas si son code marche, pourquoi il affiche une seule ligne comme ça :
                          2PUIT2réalisé6000002223AGRICULTURE3réalisé7000003331FORA­­­GE1réalisé1000000111

                          Alors que les BR sont censés renvoyer à la ligne.

                          Donc pour moi ça ne marche pas ^^
                          0
                          1. en fait son post est en plusieurs parties XD
                            dans une autre, il a dit ca :

                            "si je mets les '<br/>' ça serait en verticale ce charabia n'a rien avoir dans mon code"
                            0
                            1. bjour, j'ai un code dynamique qui permet d'alimenter directement ma base de données sous postgresql mais mon soucis est que :je voudrais avoir un code qui me permet de remplacer les codes numériques par leur valeurs textuelles. ça c'est le code entier :

                              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                              <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
                              <head>
                              <title> gestion de projet </title>
                              <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

                              </head>
                              <body>

                              <?php
                              $conn =("host=localhost port=5432 dbname= gdt user=postgres password=gabero");
                              $dbconn = pg_connect("$conn");
                              // connexion à une base de données nommée "gdt" sur l'hôte "localhost" avec un
                              // nom d'utilisateur"postgres" et un mot de passe"gabero"
                              // éxecution de la requète SQL
                              $sql = pg_query("select * from projet");
                              //En-tete du tableau
                              echo "<table border=\"1\" >
                              <caption><strong> PROJET</strong></caption>
                              <tr>
                              <td>id-projet</td>
                              <td>nom-projet</td>
                              <td>code-mo</td>
                              <td>resultat-projet</td>
                              <td>montant-projet</td>
                              <td>code-localisation</td>
                              <td>id-nature</td>
                              <td>id-date</td>
                              <td>code-etat</td>
                              </tr>";
                              // utilisation de la boucle tant que
                              while($infos = pg_fetch_array($sql)) {
                              // affichage des resultats
                              echo"<tr>";//ligne du tableau
                              echo "<td>";echo $infos['id-projet'];echo "</td>";
                              echo "<td>";echo $infos['nom-projet'];echo "</td>";
                              echo "<td>";echo $infos['code-mo'] ;echo "</td>";
                              echo "<td>";echo $infos['resultat-projet'] ;echo "</td>";
                              echo "<td>";echo $infos['montant-projet'] ;echo "</td>";
                              echo "<td>";echo $infos['code-localisation'] ;echo "</td>";
                              echo "<td>";echo $infos['id-nature'] ;echo "</td>";
                              echo "<td>";echo $infos['id-date'] ;echo "</td>";
                              echo "<td>";echo $infos['code-etat'];echo "</td>";
                              echo"</tr>"; //fermeture de la ligne
                              } //fermeture du tant que
                              echo "</table>";//fermeture du tableau
                              pg_close($dbconn);
                              ?>
                              </body>
                              </html>
                              je code me permet d'afficher des lignes du genre

                              id-projet nom-projet code-mo resultat-projet montant-projet code-localisation id-nature id-date code-etat
                              1 FORAGE 1 réalisé 500000 1 1 1 1
                              et je voudrais avoir un code qui m'affiche mes lignes de cette façon suivante:

                              id-projet nom-projet code-mo resultat-projet montant-projet code-localisation id-nature id-date code-etat
                              1 FORAGE stp réalisé 500000 Mandé Agriculture 2000-04-12 en cours
                              vous comprenenez un peu ma préocupation j'ai une table principale qui s'appelle table projet et cette table contient des indentifiants liées à d'autres tables(mo,localisation,nature,date,etat).merci
                              0
                              1. Bonjour,
                                j'ai une table principale Projet qui contient des identifants(clés étrangères) liés à d'autres tables (Localisation,nature,mo,date,etat), contenant la liste des projets, et des références à d'autres informations liées au projet : code-localisation, id-nature, code-etat,code-mo,id-date.
                                dans ma base, j'ai pour chaque code une table qui me donne la correspondance entre le code, et un libellé plus compréhensible. ce que je veux pour chacun des codes: remplacer les codes numériques par leurs valeurs textuelles.
                                pour cela il me faut aller chercher les infos dans les autres tables.
                                ça c'est le code:

                                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                                <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
                                <head>
                                <title> gestion de projet </title>
                                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

                                </head>
                                <body>

                                <?php
                                $conn =("host=localhost port=5432 dbname= gdt user=postgres password=gabero");
                                $dbconn = pg_connect("$conn");
                                // connexion à une base de données nommée "gdt" sur l'hôte "localhost" avec un
                                // nom d'utilisateur"postgres" et un mot de passe"gabero"
                                // éxecution de la requète SQL
                                $sql = pg_query("select * from projet");
                                //En-tete du tableau
                                echo "<table border=\"1\" >
                                <caption><strong> PROJET</strong></caption>
                                <tr>
                                <td>id-projet</td>
                                <td>nom-projet</td>
                                <td>code-mo</td>
                                <td>resultat-projet</td>
                                <td>montant-projet</td>
                                <td>code-localisation</td>
                                <td>id-nature</td>
                                <td>id-date</td>
                                <td>code-etat</td>
                                </tr>";
                                // utilisation de la boucle tant que
                                while($infos = pg_fetch_array($sql)) {
                                // affichage des resultats
                                echo"<tr>";//ligne du tableau
                                echo "<td>";echo $infos['id-projet'];echo "</td>";
                                echo "<td>";echo $infos['nom-projet'];echo "</td>";
                                echo "<td>";echo $infos['code-mo'] ;echo "</td>";
                                echo "<td>";echo $infos['resultat-projet'] ;echo "</td>";
                                echo "<td>";echo $infos['montant-projet'] ;echo "</td>";
                                echo "<td>";echo $infos['code-localisation'] ;echo "</td>";
                                echo "<td>";echo $infos['id-nature'] ;echo "</td>";
                                echo "<td>";echo $infos['id-date'] ;echo "</td>";
                                echo "<td>";echo $infos['code-etat'];echo "</td>";
                                echo"</tr>"; //fermeture de la ligne
                                } //fermeture du tant que
                                echo "</table>";//fermeture du tableau
                                pg_close($dbconn);
                                ?>
                                </body>
                                </html>

                                ce code me permet d'afficher des lignes du genre

                                id-projet nom-projet code-mo resultat-projet montant-projet code-localisation id-nature id-date code-etat
                                1 FORAGE 1 réalisé 500000 1 1 1 1
                                et je voudrais avoir un code qui m'affiche mes lignes de cette façon suivante:

                                id-projet nom-projet code-mo resultat-projet montant-projet code-localisation id-nature id-date code-etat
                                1 FORAGE stp réalisé 500000 Mandé Agriculture 2000-04-12 en cours
                                VOUS comprenez un peu ma preocupation.merci de me precisé un point que vous ne comprenez.venez moi en aide ça des jours que je tourne en rond
                                0