Base de données, HTML: visualiser lrésultats
Résolu
pontarose
-
pontarose -
pontarose -
Bonjour,
je voudrais visualiser mon formulaire (données entrés dans une base de donnée) sous forme de tableau html.
Je lance mon sritp sous root comme cela : php page.php je vous avoue que je ne sais si c'est comme cela que l'on procède!!!
qqn pourrait m'aider?
page.php
<html>
<body>
<table border="1">
<tr>
<th>Complex Name<th>
<th>Subunit Number<th>
<th>Subunit Name<th>
<th>Systematic Gene Name<th>
<th>Description<th>
<th>Stochiometrie<th>
</tr>
<?php
$servername = 'localhost';
$user = 'root';
$password = ''; //je n'ai pas de mot de passe root
$dbname = 'db';
$connexion= mysql_connect($servername,$user, $password) or die ("problème de connexion au serveur");
mysql_select_db($dbname,$connexion) or die ("problème :base de donnée non trouvé");
$requete=
"SELECT famille_name, famille_number
FROM famille";
$execution = mysql_query($requete) or die("erreur au niveau de la requête");
$ligne = mysql_fetch_array($execution);
while($ligne)
{
print "
<td>".$ligne['famille_name']."</td>
<td>".$ligne['famille_number']."</td>";
$requete2=
"SELECT enfant_age, enfant_yeux
FROM enfant, famille
WHERE famille.famille_id = enfant.famille_id";
$execution2 = mysql_query($requete2) or die("erreur au niveau de la requête2");
$ligne2 = mysql_fetch_array($execution2);
while($ligne2)
{
print "
<td>".$ligne['age']."</td>
<td>".$ligne['yeux']."</td>";
}
}
mysql_close($connexion);//déconnexion a la DB
?>
</table
</body>
</html>
je voudrais visualiser mon formulaire (données entrés dans une base de donnée) sous forme de tableau html.
Je lance mon sritp sous root comme cela : php page.php je vous avoue que je ne sais si c'est comme cela que l'on procède!!!
qqn pourrait m'aider?
page.php
<html>
<body>
<table border="1">
<tr>
<th>Complex Name<th>
<th>Subunit Number<th>
<th>Subunit Name<th>
<th>Systematic Gene Name<th>
<th>Description<th>
<th>Stochiometrie<th>
</tr>
<?php
$servername = 'localhost';
$user = 'root';
$password = ''; //je n'ai pas de mot de passe root
$dbname = 'db';
$connexion= mysql_connect($servername,$user, $password) or die ("problème de connexion au serveur");
mysql_select_db($dbname,$connexion) or die ("problème :base de donnée non trouvé");
$requete=
"SELECT famille_name, famille_number
FROM famille";
$execution = mysql_query($requete) or die("erreur au niveau de la requête");
$ligne = mysql_fetch_array($execution);
while($ligne)
{
print "
<td>".$ligne['famille_name']."</td>
<td>".$ligne['famille_number']."</td>";
$requete2=
"SELECT enfant_age, enfant_yeux
FROM enfant, famille
WHERE famille.famille_id = enfant.famille_id";
$execution2 = mysql_query($requete2) or die("erreur au niveau de la requête2");
$ligne2 = mysql_fetch_array($execution2);
while($ligne2)
{
print "
<td>".$ligne['age']."</td>
<td>".$ligne['yeux']."</td>";
}
}
mysql_close($connexion);//déconnexion a la DB
?>
</table
</body>
</html>
A voir également:
- Base de données, HTML: visualiser lrésultats
- Fuite données maif - Guide
- Base de registre - Guide
- Editeur html - Télécharger - HTML
- Supprimer les données de navigation - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
43 réponses
Bonjour,
J'ai mis mon scriptphp dans /var/www/apache2-default
Quand je tape http://localhost/ dans firefox j'ai bien la page d'accueil, du moins je vois inscrit :
index of/
apache2-default
Je suis sous ubuntu
J'ai mis mon scriptphp dans /var/www/apache2-default
Quand je tape http://localhost/ dans firefox j'ai bien la page d'accueil, du moins je vois inscrit :
index of/
apache2-default
Je suis sous ubuntu
Bonjour ,
Je ne vois pas comment récuperer la valeur de $famille_id.? Faut que je fasse une requête
Sachant que je suis parti d'un formulaire pour remplir ma base de donnée et que maitenant je fais appel à celle-ci pour obtenir mon tableau HTML.
Je ne vois pas comment récuperer la valeur de $famille_id.? Faut que je fasse une requête
Sachant que je suis parti d'un formulaire pour remplir ma base de donnée et que maitenant je fais appel à celle-ci pour obtenir mon tableau HTML.
salut,
veux-tu afficher toutes les lignes de la table 'famille' ?
si oui, ta première requête pourrait être :
et pour définir la deuxième tu récupère 'famille_id' de la ligne en cours de traitement :
veux-tu afficher toutes les lignes de la table 'famille' ?
si oui, ta première requête pourrait être :
$requete="SELECT famille_id, famille_name, famille_number FROM famille;
et pour définir la deuxième tu récupère 'famille_id' de la ligne en cours de traitement :
$requete2="SELECT enfant_nom, enfant_age, enfant_yeux FROM enfant WHERE famille_id=".$execution['famille_id'];
Merci beaucoup pour ta patience Dalida.
Serait tu pourquoi je n'arrive pas a visualiser mon tableau HTML?
Pour que mon script PHP soit interpreté par Apache2 et que le résultat HTML soit "visible", je lance mon script depuis un navigateur Fire Fox.
Mon script est dans le répertoire var/www/apache2-default
Donc je lance http://localhost/apache2-default/script.php mais je n'obtiens rien; ma page est vide.
Si je tapes dans firefox:http://localhost/
je tombe bien sur la page d'acceuil Apache
Ma distribution est ubuntu
Serait tu pourquoi je n'arrive pas a visualiser mon tableau HTML?
Pour que mon script PHP soit interpreté par Apache2 et que le résultat HTML soit "visible", je lance mon script depuis un navigateur Fire Fox.
Mon script est dans le répertoire var/www/apache2-default
Donc je lance http://localhost/apache2-default/script.php mais je n'obtiens rien; ma page est vide.
Si je tapes dans firefox:http://localhost/
je tombe bien sur la page d'acceuil Apache
Ma distribution est ubuntu
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re-salut,
J'ai trouvé la solution a mon problème j'avais mal défini mes balises elle n'était pas dans le bon ordre
<body>
<style>
</style>
</body>
<table>
</table>
J'ai trouvé la solution a mon problème j'avais mal défini mes balises elle n'était pas dans le bon ordre
<body>
<style>
</style>
</body>
<table>
</table>
crée un fichier php dans ton local par défaut que tu nommes index.php.
dedans tu colles :
et tu actualises http://localhost/ dans FF, en vidant le cache avec [ Ctrl ] + [ F5 ].
dedans tu colles :
<?php phpinfo() ?>
et tu actualises http://localhost/ dans FF, en vidant le cache avec [ Ctrl ] + [ F5 ].
Merci.
Les différentes infos saisies lors de mon formulaire (formulaire a plusieurs pages) ont été stockés dans ma base de donnée.
Maintenant j'aimerais qu'une partie de ces infos apparaissent dans mon formulaire sous forme d'une liste . Et lorsque je clique sur un élément de cette liste je dois voir apparaitre le tableau associé a cet élément.
formulaire.php :
Dans mon formulaire je peux sélectionner un nom de famille et pour chaque nom de famille j'ai un lien cliquable.
while ($row= mysql_fetch_assoc($execution))
{
print ('<td align =center><a href="http:/apache2-default/tableau.php">'.$row['famille_name'].'</a></td>');
print('</tr>');
}
Jusqu'ici tout va bien.
Mais comment indiquer que pour l'élément que j'ai cliqué je veux un tableau HTML qui lui est associé. ???
Si je fais
Dans tableau.php :
$requete="SELECT famille_id, famille_name, famille_number
FROM famille;
$requete2="SELECT enfant_nom, enfant_age, enfant_yeux
FROM enfant
WHERE famille_id=$execution['famille_id'];
Alors là, quel que soit le nom que je clique j'obtiens le même tableau HTML.
Je pense que je ne peux pas passer par $_POST pour récupérer la valeur de la variable famille_name pour pouvoir ensuite l'insérer dans mes requêtes.
Les différentes infos saisies lors de mon formulaire (formulaire a plusieurs pages) ont été stockés dans ma base de donnée.
Maintenant j'aimerais qu'une partie de ces infos apparaissent dans mon formulaire sous forme d'une liste . Et lorsque je clique sur un élément de cette liste je dois voir apparaitre le tableau associé a cet élément.
formulaire.php :
Dans mon formulaire je peux sélectionner un nom de famille et pour chaque nom de famille j'ai un lien cliquable.
while ($row= mysql_fetch_assoc($execution))
{
print ('<td align =center><a href="http:/apache2-default/tableau.php">'.$row['famille_name'].'</a></td>');
print('</tr>');
}
Jusqu'ici tout va bien.
Mais comment indiquer que pour l'élément que j'ai cliqué je veux un tableau HTML qui lui est associé. ???
Si je fais
Dans tableau.php :
$requete="SELECT famille_id, famille_name, famille_number
FROM famille;
$requete2="SELECT enfant_nom, enfant_age, enfant_yeux
FROM enfant
WHERE famille_id=$execution['famille_id'];
Alors là, quel que soit le nom que je clique j'obtiens le même tableau HTML.
Je pense que je ne peux pas passer par $_POST pour récupérer la valeur de la variable famille_name pour pouvoir ensuite l'insérer dans mes requêtes.
as-tu réussi à faire tourner ton serveur ?
pour le formulaire tu peux le faire avec $_POST mais par $_GET ce sera bien plus simple, d'autant que les infos transitant ne sont pas sensibles (id de la famille).
il suffit de modifier le lien vers la famille.
ce qui donnera un lien du type : "http:/apache2-default/tableau.php?id=16"
dans ton script 'tableau.php' tu récupèreras l'info par :
pour le formulaire tu peux le faire avec $_POST mais par $_GET ce sera bien plus simple, d'autant que les infos transitant ne sont pas sensibles (id de la famille).
il suffit de modifier le lien vers la famille.
while ($row= mysql_fetch_assoc($execution)) { print ('<td align =center><a href="http:/apache2-default/tableau.php?id='.$row['famille_id'].'">'.$row['famille_name'].'</a></td>'); print('</tr>'); }
ce qui donnera un lien du type : "http:/apache2-default/tableau.php?id=16"
dans ton script 'tableau.php' tu récupèreras l'info par :
if(isset( $_GET['id']) && !empty( $_GET['id'])) { $famille_id = $_GET['id']; }
Bonjour,
Oui j'ai réussi a faire tourner mon server tous marche.
A partir de 3 enfants j'ai un affichage décalé pour mon tableau HTML.En effet, j'ai un décalage au niveau de mon alignement.
Voiçi un exemple :
Au lieu d'avoir cela :
famille_name famille_number enfant_yeux enfant_age
dupond 3 bleu 18
dupond 3 marron 16
dupond 3 marron 14
j'aimerais avoir cela :(pour une même famille fusion des 3 lignes pour les champs famille_name et famille_number)
famille_name famille_number enfant_yeux enfant_age
bleu 18
dupond 3 marron 16
marron 14
Or après avoir lancé mon script j'obtiens :
famille_name famille_number enfant_yeux enfant_age
bleu 18
dupond 3 marron 16
marron 14
la troisième ligne est décalé de un champ vers la gauche!!
Dans mon script je fais une fusion des lignes en fonction du nombre d'enfants.
while ($row = mysql_fetch_assoc($execution))
{
$requete2="SELECT enfant_yeux, enfant_age
FROM enfant
WHERE famille_id=".$execution['famille_id'];
execution2 = mysql_query($requete2) or die("erreur au niveau de la requête");
$num_rows2 = mysql_num_rows($execution2);
if ($num_rows2 == 0)
{
print("Aucune ligne trouvée pour ma requete");
exit;
}
print("<tr>");
print('<td align center rowspan="$num_rows2">'.$row['famille_name'].'</td>
<td align center rowspan="$num_rows2">'.$row['famille_number'].'</td>');
while ($ligne = mysql_fetch_assoc($execution2))
{
print('<td>'.$ligne['enfant_yeux'].'</td>
<td>'.$ligne['enfant_age'].'</td>');
print("</tr>");
}
}
Oui j'ai réussi a faire tourner mon server tous marche.
A partir de 3 enfants j'ai un affichage décalé pour mon tableau HTML.En effet, j'ai un décalage au niveau de mon alignement.
Voiçi un exemple :
Au lieu d'avoir cela :
famille_name famille_number enfant_yeux enfant_age
dupond 3 bleu 18
dupond 3 marron 16
dupond 3 marron 14
j'aimerais avoir cela :(pour une même famille fusion des 3 lignes pour les champs famille_name et famille_number)
famille_name famille_number enfant_yeux enfant_age
bleu 18
dupond 3 marron 16
marron 14
Or après avoir lancé mon script j'obtiens :
famille_name famille_number enfant_yeux enfant_age
bleu 18
dupond 3 marron 16
marron 14
la troisième ligne est décalé de un champ vers la gauche!!
Dans mon script je fais une fusion des lignes en fonction du nombre d'enfants.
while ($row = mysql_fetch_assoc($execution))
{
$requete2="SELECT enfant_yeux, enfant_age
FROM enfant
WHERE famille_id=".$execution['famille_id'];
execution2 = mysql_query($requete2) or die("erreur au niveau de la requête");
$num_rows2 = mysql_num_rows($execution2);
if ($num_rows2 == 0)
{
print("Aucune ligne trouvée pour ma requete");
exit;
}
print("<tr>");
print('<td align center rowspan="$num_rows2">'.$row['famille_name'].'</td>
<td align center rowspan="$num_rows2">'.$row['famille_number'].'</td>');
while ($ligne = mysql_fetch_assoc($execution2))
{
print('<td>'.$ligne['enfant_yeux'].'</td>
<td>'.$ligne['enfant_age'].'</td>');
print("</tr>");
}
}
execution2 = mysql_query($requete2) or die("erreur au niveau de la requête");
il manque le $ au début de la ligne.
Pour le décalage est ce que les titres des colonnes famille_name famille_number enfant_yeux enfant_age sont bien dans les même balises <table></table> que le résultat de tes requettes ? tu n'as pas deux tableaux séparés ?
Au passage mets des <th> au lieu des <td> pour les titres ça te les met en gras.
il manque le $ au début de la ligne.
Pour le décalage est ce que les titres des colonnes famille_name famille_number enfant_yeux enfant_age sont bien dans les même balises <table></table> que le résultat de tes requettes ? tu n'as pas deux tableaux séparés ?
Au passage mets des <th> au lieu des <td> pour les titres ça te les met en gras.
Merci c'est une faute de frappe pour $.
Oui mes titres sont bien dans les même balises <table></table> que le résultat de tes requettes.
<table border="1">
<tr>
<th>Famille Name<th>
<th>Famille Number<th>
<th>Yeux enfant<th>
<th>Age enfant<th>
</tr>
<?php
<--les requêtes ci-dessus -->
mysql_close($connexion);
?>
</table>
Ce qui est étonnat c'est que ce décalage intervient a partir d'un nombre d'enfants supérieur ou égal à 3. (càd $num_rows2>=3).
Pour 2 pas de souci!!!
Oui mes titres sont bien dans les même balises <table></table> que le résultat de tes requettes.
<table border="1">
<tr>
<th>Famille Name<th>
<th>Famille Number<th>
<th>Yeux enfant<th>
<th>Age enfant<th>
</tr>
<?php
<--les requêtes ci-dessus -->
mysql_close($connexion);
?>
</table>
Ce qui est étonnat c'est que ce décalage intervient a partir d'un nombre d'enfants supérieur ou égal à 3. (càd $num_rows2>=3).
Pour 2 pas de souci!!!
Il doit te manquer des balises <tr> </tr> dans ta boucle while ($ligne = mysql_fetch_assoc($execution2))
pour que le tableau avec rowspan marche il faut qu'il ait cette structure:
alors essayes:
pour que le tableau avec rowspan marche il faut qu'il ait cette structure:
<table> <tr> <td rowspan="2"> A</td> <td>A11</td> <td>A12</td> </tr> <tr> <td>A21</td> <td>A22</td> </tr> </table>
alors essayes:
print('</tr>'); while ($ligne = mysql_fetch_assoc($execution2)) { print('<tr><td>'.$ligne['enfant_yeux'].'</td> <td>'.$ligne['enfant_age'].'</td>'); print("</tr>"); }
Bonjour,
en fesant cela je n'ai pas la fusion de mes lignes et j'ai un décalage de 2 colonnes vers la gauche.
Je veux que X lignes (dépend du nombre d'enfants soit dans mon script $num_rows2) de mes deux premières colonnes soit fusionnés.
en fesant cela je n'ai pas la fusion de mes lignes et j'ai un décalage de 2 colonnes vers la gauche.
Je veux que X lignes (dépend du nombre d'enfants soit dans mon script $num_rows2) de mes deux premières colonnes soit fusionnés.
Bonjour,
cela fait deux jours que je suis sur mon problème et je ne trouve toujours pas de solution quelqu'un aurait-il une idée ou une solution a me suggérer?
Je veux que X lignes (dépend du nombre d'enfants ,soit dans mon script $num_rows2) de mes deux premières colonnes soit fusionnés.
Cependant a partir de $num_rows2≤=3, j'ai un décalage pour ma troisième lignes de 2 colonnes (d'après l'exemple ci-dessus : marron se trouve dans la colonne famill_name et 14 se trouve dans la colonne famille_number).
j'aimerais avoir cela :(fusion des 2 colonnes famille_name et famille_number et ensuite avoir sur chaque ligne les caractéristique pour chaque enfant. Le nombre de lignes dépend du nombre d'enfants)
famille_name famille_number enfant_yeux enfant_age
bleu 18
dupond 3 marron 16
marron 14
voiçi mon script :
<table border="1">
<tr>
<th>Famille Name<th>
<th>Famille Number<th>
<th>Yeux enfant<th>
<th>Age enfant<th>
</tr>
<?php
<--connexion a la base de donnée , requête -->
while ($row = mysql_fetch_assoc($execution))
{
$requete2="SELECT enfant_yeux, enfant_age
FROM enfant
WHERE famille_id=".$execution['famille_id'];
execution2 = mysql_query($requete2) or die("erreur au niveau de la requête");
$num_rows2 = mysql_num_rows($execution2);
if ($num_rows2 == 0)
{
print("Aucune ligne trouvée pour ma requete");
exit;
}
print("<tr>");
print('<td align center rowspan="$num_rows2">'.$row['famille_name'].'</td>
<td align center rowspan="$num_rows2">'.$row['famille_number'].'</td>');
while ($ligne = mysql_fetch_assoc($execution2))
{
print('<td>'.$ligne['enfant_yeux'].'</td>
<td>'.$ligne['enfant_age'].'</td>');
print("</tr>");
}
}
mysql_close($connexion);
?>
</table>
cela fait deux jours que je suis sur mon problème et je ne trouve toujours pas de solution quelqu'un aurait-il une idée ou une solution a me suggérer?
Je veux que X lignes (dépend du nombre d'enfants ,soit dans mon script $num_rows2) de mes deux premières colonnes soit fusionnés.
Cependant a partir de $num_rows2≤=3, j'ai un décalage pour ma troisième lignes de 2 colonnes (d'après l'exemple ci-dessus : marron se trouve dans la colonne famill_name et 14 se trouve dans la colonne famille_number).
j'aimerais avoir cela :(fusion des 2 colonnes famille_name et famille_number et ensuite avoir sur chaque ligne les caractéristique pour chaque enfant. Le nombre de lignes dépend du nombre d'enfants)
famille_name famille_number enfant_yeux enfant_age
bleu 18
dupond 3 marron 16
marron 14
voiçi mon script :
<table border="1">
<tr>
<th>Famille Name<th>
<th>Famille Number<th>
<th>Yeux enfant<th>
<th>Age enfant<th>
</tr>
<?php
<--connexion a la base de donnée , requête -->
while ($row = mysql_fetch_assoc($execution))
{
$requete2="SELECT enfant_yeux, enfant_age
FROM enfant
WHERE famille_id=".$execution['famille_id'];
execution2 = mysql_query($requete2) or die("erreur au niveau de la requête");
$num_rows2 = mysql_num_rows($execution2);
if ($num_rows2 == 0)
{
print("Aucune ligne trouvée pour ma requete");
exit;
}
print("<tr>");
print('<td align center rowspan="$num_rows2">'.$row['famille_name'].'</td>
<td align center rowspan="$num_rows2">'.$row['famille_number'].'</td>');
while ($ligne = mysql_fetch_assoc($execution2))
{
print('<td>'.$ligne['enfant_yeux'].'</td>
<td>'.$ligne['enfant_age'].'</td>');
print("</tr>");
}
}
mysql_close($connexion);
?>
</table>
salut,
est-ce quelque chose comme ce tableau ?
je n'ai pas le temps de me pencher sur l'algo, mais ça me permettra d'y réfléchir.
j'essaie de repasser dans la journée.
est-ce quelque chose comme ce tableau ?
je n'ai pas le temps de me pencher sur l'algo, mais ça me permettra d'y réfléchir.
j'essaie de repasser dans la journée.
Bonjour,
Oui c'est tout a fait cela .
Sauf que pour les familles suivantes par exemple Barottzi si tu met 9 pour famille_number , alors il faut que tu aient 9 lignes correspondant pour les deux colonnes enfant_yeux et enfant_age. Là tu as mis q'une ligne.
Oui c'est tout a fait cela .
Sauf que pour les familles suivantes par exemple Barottzi si tu met 9 pour famille_number , alors il faut que tu aient 9 lignes correspondant pour les deux colonnes enfant_yeux et enfant_age. Là tu as mis q'une ligne.
et avec quelque chose comme ça :
par contre il faudrait ajouter le '</tr>' dans le cas ou il n'y a pas d'enfant.
<?php while ($row = mysql_fetch_assoc($execution)) { $requete2="SELECT enfant_yeux, enfant_age FROM enfant WHERE famille_id=".$execution['famille_id']; execution2 = mysql_query($requete2) or die("erreur au niveau de la requête"); $num_rows2 = mysql_num_rows($execution2); if ($num_rows2 == 0) { print("Aucune ligne trouvée pour ma requete"); exit; } print("<tr>"); print('<td align center rowspan="$num_rows2">'.$row['famille_name'].'</td> <td align center rowspan="$num_rows2">'.$row['famille_number'].'</td>'); $inline = true; while ($ligne = mysql_fetch_assoc($execution2)) { if($inline == true) { print('<td>'.$ligne['enfant_yeux'].'</td><td>'.$ligne['enfant_age'].'</td>'); print("</tr>"); $inline = false; } else { print("<tr>"); print('<td colspan="3">'.$ligne['enfant_yeux'].'</td> <td colspan="3">'.$ligne['enfant_age'].'</td>'); print("</tr>"); } } } ?>
par contre il faudrait ajouter le '</tr>' dans le cas ou il n'y a pas d'enfant.