Vous n'êtes pas identifié(e).
Bonjour à tous et joyeux Noël à tout le monde
Après avoir passé 3 jours à éplucher le web, je n'ai toujours pas trouver la solution à mon problème.
Sur mon site, je souhaite afficher la liste de contacts et de DJs stockés dans ma base de données.
J'ai donc une fonction ListerContacts et ListerDjs qui sont sensiblement équivalentes (seuls les noms de quelques variables et fonctions changent). Néanmoins, lors de l'appel de la fonction ListerDjs, j'ai cette erreur qui s'affiche :
Warning: pg_query(): 5 is not a valid PostgreSQL link resource in /homez.***/***/***/***/sql/fonctionsBDD.php on line 204
Warning: pg_close(): 5 is not a valid PostgreSQL link resource in /homez.***/***/***/***/sql/fonctionsBDD.php on line 205
Voilà la fonction où est l'erreur :
function ListerLesDjs($bdd) {
global $bdd;
$sql="SELECT id,nom,prenom,description,adresseinternet,numerotel,email,date_creation,date_derniere_modification FROM DJ ORDER BY id ASC;";
$res=pg_query($bdd,$sql);
pg_close($bdd);
if(!$res) {
echo " La requête ".$sql." a échouée...
<br/><br/>
<a href='javascript:history.go(-1)'>Retour</a>";
}
$lignes = pg_numrows($res);
for($i=0; $i<$lignes; $i++) {
$dj[$i] = pg_fetch_array($res, $i);
$j=$i+1;
$djs.=" <div style='float:left;padding:8px'>
DJ #".$j."
<blockquote>
Nom : ".$dj[$i]['nom']."<br/>
Prénom : ".$dj[$i]['prenom']."<br/>
Description : ".$dj[$i]['description']."<br/>
Adresse internet : <a href='".$dj[$i]['adresseinternet']."'>".$dj[$i]['adresseinternet']."</a><br/>
Numéro Tél : ".$dj[$i]['numerotel']."<br/>
Email : ".$dj[$i]['email']."<br/>
<br/>
<form action='djs.php' method='GET'>
<input type='hidden' name='requete' value='modifier-dj' />
<input type='hidden' name='id' value='".$dj[$i]['id']."' />
<input type='submit' value='Modifier' />
</form>
<form action='djs.php' method='GET' onclick=\"if(confirm('Êtes-vous sûr de vouloir supprimer ce DJ ?')) this.form.submit();else return false\" >
<input type='hidden' name='requete' value='supprimer-dj' />
<input type='hidden' name='id' value='".$dj[$i]['id']."' />
<input type='submit' value='Supprimer' />
</form>
</blockquote>
<a href='#djs'>⇑</a>
<br/><br/>
</div>";
}
return $djs;
}
La requête s'exécute bien quand je la tape directement dans PhpPgAdmin.
Le problème provient de pg_query, mais je ne vois pas ce que ça peut être. Je l'utilise de la même manière 3 fois dans mon code et ça ne pose pas de soucis.
Dans le doute, je vous poste mes codes :
Le fichier fonctionsBDD.php où est l'erreur : http://pastebin.com/2Abv9m4q
Le fichier djs.php qui appelle fonctionsBDD.php : http://pastebin.com/4F1eyga6
Le fichier contacts.php qui appelle lui aussi fonctionsBDD.php : http://pastebin.com/8rZQS2gz
Mon index.php qui tape dans les deux fichiers ci-dessus : http://pastebin.com/JegcAF3D
Je vous remercie par avance de l'aide précieuse que vous pourrez m'apportez.
Et encore une fois, JOYEUX NOËL
Dernière modification par Shipping LAN (25/12/2011 00:12:25)
Hors ligne
Je crois qu'il fallait que je poste mon problème pour enfin le trouver.
Je fermais la connexion à la base sans la rouvrir pour retaper dedans... Du coup il me ressortait cette erreur.
J'ai fait une fonction connectionBdd() qui initialise $bdd pour pouvoir balancer ma commande sql avec pg_query puis fermer la connexion avec pg_close.
function ListerLesDjs() {
$bdd=connectionBdd();
$sql="SELECT id,nom,prenom,description,adresseinternet,numerotel,email,date_creation,date_derniere_modification FROM DJ ORDER BY id ASC;";
$res=pg_query($bdd,$sql);
pg_close($bdd);
...
function connectionBdd() {
$login='****';
$pass='****';
$dbname='****';
$lehost='****';
$leport=****;
$bdd=pg_pconnect("host=$lehost port=$leport dbname=$dbname user=$login password=$pass");
// test de connexion :
if (!$bdd) {
echo("Problème de connexion à la base\n");
exit();
}
else {
return $bdd;
}
}
C'était simple comme bonjour mais j'avais pas vu.
Sur ce, je vais déballer mes cadeaux
Hors ligne
effectivement clore votre connexion avant de requeter c'est pas le mieux
Hors ligne