Page 1 sur 1

HTML dynamique + sql BDD

Posté : 04 oct. 2005, 10:58
par Maitrepylos
Bonjour, je fais ce bout de code, mais il ne m'affcihe pas les données.

Me serais-je trompé.
$result = pg_query($Connect,"SELECT parnom,parprenom,dospaiement FROM participant,dossier  
WHERE participant.idparticipant=dossier.idparticipant ORDER BY parnom asc");

while($soluce = pg_fetch_array($result));
 
 {
 
 echo "<tr>";
    echo "<td class=\"TrOdd\" align=Left>";echo $soluce['parnom']."</td>";
    echo "<td class=\"TrOdd\" align=Left>";echo $soluce['parprenom']."</td>";
    echo "<td class=\"TrOdd\" align=Left>";echo $soluce['dospaiement']."</td>";
    
 	
echo "</tr>";

 }
Merci de votre aide

Posté : 04 oct. 2005, 11:01
par zeus
Est-ce que tu as la possibilité d'exécuter la requete directement (comme avec phpmyadmin pour mysql) ?

Si ça se trouve, la requête ne retourne simplement aucun résultat ... :?

Posté : 04 oct. 2005, 11:03
par mere-teresa
Je ne vois pas à première vue de grosse erreur, simplement pour trouver où ça coince, fais des tests.

1 - Teste ta requête dans Eskuel ou PHPMyAdmin : s'il n'y a pas de résultats à la requête, c'est normal que ça n'affiche rien...Verifie le HTML (dans ton navigateur "Voir le code source" pour voir si les <td> sont créés).
2 - Dans le while fais avant les autres echo un
echo "<pre>";//pour mettre en forme
var_dump($soluce); // te donnera le contenu et le type de la variable
echo "</pre><hr />";

3 - Si tu as un message d'erreur ou des résultats copie et colle les ici.

Posté : 04 oct. 2005, 11:45
par Maitrepylos
Dans "phpPgAdmin", j'ai bien les données.

La source affiche les </td>, mais une seule fois et sans donnés bien sur.

Le var dump donne false.


????????????????????????

Posté : 04 oct. 2005, 11:53
par Cyrano
Donc, il y a un problème au moment de l'exécution de la requête. Peut-être un problème tout simplement avant au moment de la connexion: tu peux tester quelque chose dans ce genre:
$connexion = pg_connect("db_name=". $admin .", etc...");
if(!connexion)
{
    echo("<p>Échec de la connexion au serveur de base de données</p>\n");
}
else
{
    //.... suite du code et exécution de la requête...
}
Tu seras fixé, il s'agit de cerner l'endroit du code qui bafouille.

Posté : 04 oct. 2005, 12:09
par Maitrepylos
Pas de problème au niveau de la connection.

Si j'essaie d'ouvrir le fichier dans une feuilles excel par exemple, il me met ceci comme erreur

Code : Tout sélectionner

Warning: pg_query(): supplied argument is not a valid PostgreSQL link resource in /var/www/Ekoke/essai10.php on line 42
voici la ligne 42
$solution = pg_query($Connect,"SELECT parnom,parprenom,dospaiement FROM participant,dossier WHERE participant.idparticipant=dossier.idparticipant ORDER BY parnom asc");

Posté : 04 oct. 2005, 12:16
par Cyrano
Il y a forcément une boulette quelque part, mais je ne vois pas où : mets nous les lignes depuis la connexion au serveur (en masquant les codes d'accès bien sûr) jusqu'à la ligne d'exécution et ensuite mets-nous ici les messages d'erreur obtenus.

Posté : 04 oct. 2005, 12:35
par Maitrepylos
Voila mon code.
<HTML>
<HEAD>
 <Title></Title>
<Style type="text/css">
  BODY { background: #339966; color: #FFFFFF;

         font-family: Arial;
  }
  A:link { color: #0066CC }
  A:visited { color: #923FC1 }
  A:active { color: #0000FF }
  .ThRows { 
            background-color: #CC0033;
            color: #FFFFFF;
            font-weight: bold; text-align: center;
            font-family: Arial;
  }
  .TrRows {
            background-color: #FFFFFF;
            color: #000000;
            font-family: Arial;
  }
  .TrOdd  {
            background-color: #FAF100;
            color: #000000;
            font-family: Arial;
  }
</STYLE>
</HEAD>
<BODY>
<Table Border="1" Cellpadding="4" Cellspacing="1">
  <tr>
    <td class="ThRows">Nom</td>
    <td class="ThRows">Pr&eacute;nom</td>
    <td class="ThRows">Paiement</td>
    </tr>
  
 <?PHP
include("Base/pgConnect.php");
 
$solution = pg_query($Connect,"SELECT parnom,parprenom,dospaiement FROM participant,dossier WHERE participant.idparticipant=dossier.idparticipant ORDER BY parnom asc");

while($soluce = pg_fetch_array(Connect,$solution));
 
 {


 echo "<tr>";
    echo "<td class=\"TrOdd\" align=Left>";echo $soluce['parnom']."</td>";
    echo "<td class=\"TrOdd\" align=Left>";echo $soluce['parprenom']."</td>";
    echo "<td class=\"TrOdd\" align=Left>";echo $soluce['dospaiement']."</td>";
    
 	
echo "</tr>";

 }
echo "</Table>";
echo "</BODY>";
echo "</HTML>";
?>
Voici l'erreur

Code : Tout sélectionner

Warning: pg_fetch_array(): supplied resource is not a valid PostgreSQL result resource in /var/www/Ekoke/essai10.php on line 42

Posté : 04 oct. 2005, 12:44
par mere-teresa
pg_fetch_array(); ne demande qu'un seul argument : que vient faire ce $Connect ?

http://fr2.php.net/manual/fr/function.p ... -array.php

Posté : 04 oct. 2005, 12:55
par Maitrepylos
Ben c'est la connection a la base, mais même sans lui je ne reçois aucune info!

Posté : 04 oct. 2005, 13:03
par Cyrano
Le même code revu et corrigé:
<html>
<head>
<title></title>
<style type="text/css">
BODY { background: #339966; color: #FFFFFF;
font-family: Arial;
}
A:link { color: #0066CC }
A:visited { color: #923FC1 }
A:active { color: #0000FF }
.ThRows {
background-color: #CC0033;
color: #FFFFFF;
font-weight: bold; text-align: center;
font-family: Arial;
}
.TrRows {
background-color: #FFFFFF;
color: #000000;
font-family: Arial;
}
.TrOdd {
background-color: #FAF100;
color: #000000;
font-family: Arial;
}
</style>
</head>
<body>
<Table Border="1" Cellpadding="4" Cellspacing="1">
  <tr>
    <td class="ThRows">Nom</td>
    <td class="ThRows">Prénom</td>
    <td class="ThRows">Paiement</td>
  </tr>
<?php
include("Base/pgConnect.php");
$solution = pg_query($Connect,"SELECT parnom,parprenom,dospaiement FROM participant,dossier WHERE participant.idparticipant=dossier.idparticipant ORDER BY parnom asc");
while($soluce = pg_fetch_array($solution))
{
?>
  <tr>
    <td class="TrOdd" align="Left"><?php echo($soluce['parnom']); ?></td>
    <td class="TrOdd" align="Left"><?php echo($soluce['parprenom']); ?></td>
    <td class="TrOdd" align="Left"><?php echo($soluce['dospaiement']); ?></td>
  </tr>
<?php
}
?>
</Table>
</body>
</html>

Posté : 04 oct. 2005, 13:10
par Maitrepylos
HO,Hé,

je venais de taper le même code et j'allais te dire que cela ne fonctionnais pas non plus.

Et puis par acquis de conscience je fais un copier/coller et ça tourne nickel.
pq moi ça va jamais ](*,)

Merci de votre aide.


Ps: je ne vos toujours pas où je me suis planter?

Posté : 04 oct. 2005, 13:13
par Cyrano
un ";" mal placé à la fin de
while($soluce = pg_fetch_array($solution)) 
Et j'ai viré le paramètre excédentaire mentionné par mere-teresa

Maintenant, on peut même faire ça en code XHTML propre et en PHP un peu arrangé pour le rendre plus facile à suivre:
<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
?>
<!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="fr">
<head>
<title></title>
<style type="text/css">
/* <![CDATA[ */
body { 
    background: #339966; 
    color: #FFFFFF;
    font-family: Arial;
}
a:link { 
    color: #0066CC 
}
a:visited { 
    color: #923FC1 
}
a:active { 
    color: #0000FF 
}
.ThRows {
    background-color: #CC0033;
    color: #FFFFFF;
    font-weight: bold; 
    text-align: center;
    font-family: Arial;
}
.TrRows {
    background-color: #FFFFFF;
    color: #000000;
    font-family: Arial;
}
.TrOdd {
    background-color: #FAF100;
    color: #000000;
    font-family: Arial;
}
/* ]]> */
</style>
</head>
<body>
<table border="1" cellpadding="4" cellspacing="1" summary="">
  <tr>
    <th class="ThRows">Nom</th>
    <th class="ThRows">Prénom</th>
    <th class="ThRows">Paiement</th>
  </tr>
<?php
include("./Base/pgConnect.php");
$sql = "SELECT parnom, parprenom, dospaiement ".
       "FROM participant, dossier ".
       "WHERE participant.idparticipant = dossier.idparticipant ".
       "ORDER BY parnom asc";
$solution = pg_query($Connect,$sql);
while($soluce = pg_fetch_array($solution))
{
?>
  <tr>
    <td class="TrOdd" align="left"><?php echo($soluce['parnom']); ?></td>
    <td class="TrOdd" align="left"><?php echo($soluce['parprenom']); ?></td>
    <td class="TrOdd" align="left"><?php echo($soluce['dospaiement']); ?></td>
  </tr>
<?php
}
?>
</table>
</body>
</html>
Note que j'ai fait de petites corrections de détail: la première ligne du tableau contenant des titre, j'ai remplacé td par th, par exemple.

Posté : 04 oct. 2005, 15:12
par Maitrepylos
Merci :lol: