Tableau php
TiboleParano Messages postés 585 Statut Membre -
j'ai créer un tableau et je vx créer une colonne qui permet d'afficher le nombre d'enregistrement qu'il y'a ds la 1ere colonne et qui se trouve d'ailleurs ds la bd c koi la requette que je dois utiliser et je vais la mettre ou? please help merci.
Configuration: Windows XP Internet Explorer 6.0
- Tableau php
- Tableau word - Guide
- Trier un tableau excel - Guide
- Imprimer un tableau excel - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
66 réponses
- 1
- 2
- 3
- 4
Il s'agit d'afficher dans une colonne le nombre d'enregistrements d'une table et de préciser la requête SQL adaptée pour obtenir ce décompte dans l'interface d'affichage. La solution principale est d'utiliser SELECT COUNT(*) AS compte FROM Nom_Table pour obtenir le nombre total d'enregistrements, puis d'extraire le résultat avec une récupération de tableau, par exemple $reponse['compte']. Si l'objectif est de compter uniquement les valeurs non nulles d'une colonne, remplacer (*) par Nom_Colonne ou (Nom_Colonne), ce qui permet d'obtenir le nombre d'entrées non nulles dans cette colonne. En pratique, le résultat peut ensuite être affiché dans la colonne correspondante lors du rendu de la table, et il convient d'adapter la requête selon le contexte et le SGBD utilisé.
$reponse = mysql_fetch_array(mysql_query("SELECT COUNT (*) AS compte FROM Nom_Table"))
$reponse['compte'] = nombre d'entrees dans cette table
après il existe peut être plus simple, et si tu veux compter uniquement les entrees de la premiere colonne de cette table, peut être que tu peut remplacer (*) par Nom_Colonne ou (Nom_Colonne)
Peux-tu expliquer à nouveau ton problème de manière claire, sans vouloir expliquer à tout va ;)
Ce que je voudrais savoir plus particulièrement c'est si tu affiche déjà un résultat de requête SQL sous forme de tableau et que tu souhaites affiché dans ce tableau le nombre de résultat que tu as affiché ? Si oui, tu voudrais savoir comment le faire sous forme SQL plutôt que PHP c'est ca ? (parce qu'en PHP, un simple compte que tu incrémente à chaque ligne de résultat traité suffit amplement pour le faire)
As-tu déjà codé quelque chose (si oui, post le entre les balises < code> et < /code> (sans les espaces bien sur)
$reponse['compte']qui contient un nombre, comme nimporte quelle variable en php, après si tu écris
echo '<td>'. $reponse['compte'] .'</td>';
Cela créé une cellule avec le nombre d'enregistramant, tu met ce code en début ou fin de tableau
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionvoila mon code des 2 pages pour ca sera bien claire
page1 :
<form id="form1" name="form1" method="post" action="p2.php">
<label></label>
<p>
<label> </label>
<label></label>
</p>
Projet
<select name="lst">
<option valu="0">---Selectionner un sujet---</option>
<?php
$requete= mysql_query("select * from sujet");
while ($lng=mysql_fetch_row($requete)) {
echo '<option value="'.$lng[0].'">'.$lng[1].'</option>';
}
?>
</select>
<?php
mysql_close();
?>
<p>
<label>
nom projet
<input name="tx" type="text" id="tx" />
</label>
</p>
<p> </p>
<p>
<label>
<input type="submit" name="Submit" value="Envoyer" />
</label>
</p>
<p> </p>
</form>
page2:
<?php
mysql_connect("localhost", "root","");
mysql_select_db("test");
$requete=mysql_query("select nom from membre inner join sujet on membre.id_suj=sujet.id_suj where sujet.intitule like'".$_POST["tx"]."%'");
?>
<table width="361" height="137" border="1">
<tr>
<th scope="col">intitule</th>
<th scope="col">Nombre</th>
<th scope="col">Taux</th>
</tr>
<?php
while ($lign=mysql_fetch_array($requete))
{
?>
<tr>
<th scope="row"><?php echo $lign[0];?></th>
<th scope="row"> </th>
<th scope="row"> </th>
</tr>
<tr>
<th scope="row"> </th>
<th scope="row"> </th>
<th scope="row"> </th>
</tr>
</table>
<p>
<?php
}
mysql_close();
?>
</p>
<p> </p>
<p align="center"><a href="p1.php">Retour </a></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
voila le sql que je vais utiliser :
"select nom ,count(sujet.intitule) as total from membre inner join sujet on membre.id_sjt=sujet.id_sjt where sujet.intitule like "sante" group by sujet.id_sjt"
mais je sais comment faire entere cette requete ds mon code.
et je vx afficher ds ce tableau la case nombre le nombre des intitule detectés ds la bd comme suite
intitule
Nombre
Taux
j'espere que ma question est assez claire j'attends tjrs votre aide,j'en suis vraiment besoin merci
c'est possible ?
"select nom ,count(sujet.intitule) as total from membre inner join sujet on membre.id_sjt=sujet.id_sjt where sujet.intitule like "sante" group by sujet.id_sjt"
te donne bien le nombre que tu voulais ? et pour le tableau j'ai du mal à comprendre sa forme,
est-ce
|INTITULE|NOMBRE|TAUX|
| dddd | 89 | 52% |
| aerg | 542 | 93% |
ou
|INTITULE| ddd | aerg |
|NOMBRE | 89 | 542 |
|TAUX | 52% | 93% |
?
|INTITULE|NOMBRE|TAUX|
| dddd | 89 | 52% |
| aerg | 542 | 93% |
a savoir que le tx est le taux d'intitule par rapport au total prenons ton exemple 89/(89+542)
tu vois ce que je vx dire et merci pr ton tps
<?php
mysql_connect("localhost", "root","");
mysql_select_db("test");
$requete=mysql_query("select nom from membre inner join sujet on membre.id_suj=sujet.id_suj where sujet.intitule like'".$_POST["tx"]."%'");
?>
<table>
<tr>
<td>Intitulé</td>
<td>Nombre</td>
<td>Taux</td>
</tr>
<?php
while ($lign=mysql_fetch_array($requete))
{
$nombre_o=mysql_query("select nom ,count(sujet.intitule) as total from membre inner join sujet on membre.id_sjt=sujet.id_sjt where sujet.intitule like "sante" group by sujet.id_sjt" );
$nombre = $nombre_o['total'];
echo '<tr><td>'.$lign[0].'</td><td>'.$nombre.'</td><td>'.$_POST['tx'].'</td></tr>';
}
?>
</table>
dis moi si c'est ce qu tu voulais, j'ai l'impresion que le nombre sera identique à chaque fois je pense pas que c'est ce que tu voulais
<?php
mysql_connect("localhost", "root","");
mysql_select_db("test");
$requete=mysql_query("select nom from membre inner join sujet on membre.id_suj=sujet.id_suj where sujet.intitule like'".$_POST["tx"]."%'");
?>
<table>
<tr>
<td>Intitulé</td>
<td>Nombre</td>
<td>Taux</td>
</tr>
<?php
while ($lign=mysql_fetch_array($requete))
{
$nombre_o=mysql_query("select nom ,count(sujet.intitule) as total from membre inner join sujet on membre.id_sjt=sujet.id_sjt where sujet.intitule like "sante" group by sujet.id_sjt" );
$nombre = $nombre_o['total'];
echo '<tr><td>'.$lign[0].'</td><td>'.$lign[1].'</td><td>'.($lign[1]/$nombre).'%</td></tr>';
}
?>
</table>
c'est peut-être plus sa que tu voulais, je crois
c'est le code de la 2e page
echo '<tr><td>'.$lign[0].'</td><td>'.$lign[1].'</td><td>'.($lign[1]/$nombre).'%</td></tr>';
comme ca
Warning: Division by zero in C:\wamp\www\Test\p2.php on line 26
Non respect de la hauteur maximale( 1,20m) des po %
Warning: Division by zero in C:\wamp\www\Test\p2.php on line 26
"select nom ,count(sujet.intitule) as total from membre inner join sujet on membre.id_sjt=sujet.id_sjt where sujet.intitule like "sante" group by nom"
mais ca donne tjrs la meme erreur
met un ptit echo $nombre.'<br/>'; juste après qu'on ai défini $nombre pour voir quelle valeur il a (si il plante avant d'afficher, insère un alert de javascript comme je l'avais fait tout à l'heure
<script language="javascript>
alert('<?php echo $nombre;?>');
</script>
sur ce je quitte le taff, jreviens demain, bonne chance et bon cod@ge d'ici là ;)
j'ai arrivé enfin à afficher le nombre mais le problème qui se pose mnt c au niveau du total
je ne sais pas comment le calculer à l'interieur de la boucle.
oui j'ai reussi à compter le nbre d'enregistrement' mais il me reste un truc c la somme de ces nombres j'ai utilisé la fonction mysql_num_rows() mais elle me compte juste les lignes alors qu'il y a des lignes ou il y a 2 ou 3 enregitrement tu vois ce que je vx dire,alors si tu px bien m'aider sur ce truc j'en serai reconnaissente merci a plus...
- 1
- 2
- 3
- 4