PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 12/08/2010 10:46:38

sophonie
Membre

Script de connection à une Base de données PostgreSQL avec PHP

Bonjour à toutes et à tous,

Je n'arrive pas à récupérer et à afficher le résultat de ma requête SQL; pourtant dans l'invite de shell psql la requête s'exécute correctement et renvoi un résultat
Voici le code PHP

<body bgcolor="white">
		<div class="header">
			<img src="img/header.png" alt="The Forgotten Garden"/>   
	    </div><!-- header -->
            
            
        <div id="container">
    	<h5>Fiche article</h5>
                      
        </div><!-- container -->
        <div class="footer">
            <img src="img/footer.png" alt="The Forgotten Garden"/>               
        </div><!-- footer -->     
    <?php 
		include('connection.inc.php');                     
        
		$select = "SELECT * FROM marques ORDER BY marque_libelle DESC";
		$clients = pg_query($select,$dbconn) or die ('Erreur : '.pg_last_error());
		$total = pg_num_rows($clients);
 
		if($total) {
			echo '<table bgcolor="white"'."\n";
			echo '<tr>';
			echo '<td bgcolor="#006498"><font color="white"><b><u>Num</u></b></font></td>';
			echo '<td bgcolor="#006498"><font color="white"><b><u>Marque</u></b></font></td>';
			echo '</tr>'."\n";
		
		
		//
			while($row = mysql_fetch_array($clients)) {
				echo '<tr>';
				echo '<td bgcolor="#dddddd">'.$row["marque_id"].'</td>';
				echo '<td bgcolor="#dddddd">'.$row["marque_libelle"].'</td>';
				echo '</tr>'."\n";
			}
			echo '</table>'."\n";		
		}
		else {
  			echo "Une erreur s'est produite.\n";
			echo "Pas d\'enregistrements dans cette table...";
  			exit;
		}
		//*on libère le résultat*//
		mysql_free_result($clients);
    ?>     
    </body>

Merci d'avance.
Sophonie.

Hors ligne

#2 12/08/2010 10:54:27

gleu
Administrateur

Re : Script de connection à une Base de données PostgreSQL avec PHP

C'est une (mauvaise) blague ? je ne vois pas comment vous pourriez avoir les résultats à votre requête SQL vers PostgreSQL en utilisant des fonctions PHP pour MySQL (mysql_fetch_array, mysql_free_result).


Guillaume.

Hors ligne

#3 12/08/2010 11:01:38

sophonie
Membre

Re : Script de connection à une Base de données PostgreSQL avec PHP

Bonjour gleu,

Autant pour moi car il s'agit d'un (mauvais) copier/coller sur un site PHP/MySQL de toute façon le problème
reste le même ... rien ne s'affiche avec les commandes des modules du paquet php-pgsql.

Exemple, voici une page de test permettant de tester la récupération des enregistrements d'une requête :

<html>
    <body>
        <table border="0" cellspacing="0" cellpadding="0">
            <tr>
                <td>
                    marque_id
                </td>
                <td>
                    marque_libelle
                </td>
            </tr>
        <?php
        $db = pg_connect('host=localhost dbname=jogstore user=xxxxx password=xxxxxxx');

        $query = "SELECT * FROM marques ORDER BY marque_libelle DESC";

        $result = pg_query($query);
        if (!$result) {
            echo "Problem with query " . $query . "<br/>";
            echo pg_last_error();
            exit();
        }

        while($myrow = pg_fetch_assoc($result)) {
            printf ("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>", $myrow['marque_id'], htmlspecialchars($myrow['marque_libelle']);
        }
        ?>
        </table>
    </body>
</html>

C'est ce qu'il y a de plus simple pourtant aucun affichage. Peut-être me manque t-il un module pour
la gestion d'une Base de données PostgreSQL avec PHP?

Sophonie.

Dernière modification par sophonie (12/08/2010 11:30:13)

Hors ligne

#4 12/08/2010 11:05:16

gleu
Administrateur

Re : Script de connection à une Base de données PostgreSQL avec PHP

Quel message d'erreur avez-vous ?


Guillaume.

Hors ligne

#5 12/08/2010 11:12:16

sophonie
Membre

Re : Script de connection à une Base de données PostgreSQL avec PHP

Aucun message d'erreur ... ce qui est "troublant", par contre je me connecte sans problème à
la Base de données.
D'ailleurs ce qui m'intrigue, c'est que si la Base de données est arrêtée (j'ai un script connection.inc.php)
aucun message d'erreur ne s'affiche me disant que la connexion n'est pas possible.

<?php
    $conn_string = "host=localhost port=5432 dbname=jogstore user=xxxxxxxxxxx password=xxxxxxxxxxxxxxx";
    $dbconn = pg_connect($conn_string) or die ("Nao consegui conectar ao PostGres --> ". pg_last_error($conn);  
    
?>

Sophonie.

Hors ligne

#6 12/08/2010 11:27:36

sophonie
Membre

Re : Script de connection à une Base de données PostgreSQL avec PHP

-- Je suis sous Linux Fedora 12 --

Question : Faut-il installer le module postgresql-odbc pour se connecter et interroger la Base de données?

Hors ligne

#7 12/08/2010 11:27:51

daamien
damien clochard

Re : Script de connection à une Base de données PostgreSQL avec PHP

Je viens de modifier votre message pour supprimer le nom d'utilisateur et son mot de passe.

Publier les codes d'accès d'une base sur un forum web n'est pas une bonne idée :-)

Hors ligne

#8 12/08/2010 11:30:48

sophonie
Membre

Re : Script de connection à une Base de données PostgreSQL avec PHP

Merci.
J'ai fais de même pour le 1er post.

Hors ligne

#9 12/08/2010 11:50:49

sophonie
Membre

Re : Script de connection à une Base de données PostgreSQL avec PHP

Je vous prie de m'excuser, je comprends pourquoi aucun affichage
n'est possible dans le navigateur.

Explication : La Base de données PostgreSQL est sur mon poste local
donc en tant que localhost alors que les FICHIERS PHP sont déposés
sur le serveur de prod. Ce qui entraine que dans la variable de
connexion je mets host=localhost, l'exécution recherche une Base de
données sur le serveur de prod. alors qu'elle n'est pas déployé sur un
serveur mais dans mon poste de travail.

Je vais donc installer la Base de données sur le serveur de prod.

Désolé.
[Résolu]

Hors ligne

Pied de page des forums