Vous n'êtes pas identifié(e).
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
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
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
Quel message d'erreur avez-vous ?
Guillaume.
Hors ligne
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
-- 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
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 :-)
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
Merci.
J'ai fais de même pour le 1er post.
Hors ligne
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