HTML dynamique + sql BDD

Mammouth du PHP | 1029 Messages

04 oct. 2005, 10:58

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
L'expérience est la somme de toutes nos erreurs.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 oct. 2005, 11:01

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 ... :?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

04 oct. 2005, 11:03

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.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Mammouth du PHP | 1029 Messages

04 oct. 2005, 11:45

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.


????????????????????????
L'expérience est la somme de toutes nos erreurs.

Mammouth du PHP | 19672 Messages

04 oct. 2005, 11:53

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1029 Messages

04 oct. 2005, 12:09

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");
L'expérience est la somme de toutes nos erreurs.

Mammouth du PHP | 19672 Messages

04 oct. 2005, 12:16

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1029 Messages

04 oct. 2005, 12:35

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
L'expérience est la somme de toutes nos erreurs.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

04 oct. 2005, 12:44

pg_fetch_array(); ne demande qu'un seul argument : que vient faire ce $Connect ?

http://fr2.php.net/manual/fr/function.p ... -array.php
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Mammouth du PHP | 1029 Messages

04 oct. 2005, 12:55

Ben c'est la connection a la base, mais même sans lui je ne reçois aucune info!
L'expérience est la somme de toutes nos erreurs.

Mammouth du PHP | 19672 Messages

04 oct. 2005, 13:03

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>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1029 Messages

04 oct. 2005, 13:10

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?
L'expérience est la somme de toutes nos erreurs.

Mammouth du PHP | 19672 Messages

04 oct. 2005, 13:13

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1029 Messages

04 oct. 2005, 15:12

Merci :lol:
L'expérience est la somme de toutes nos erreurs.