Récupérer valeur avec $_post
Dernière réponse : dans Programmation
Salut,
J'ai un petit problème avec mon code, j'ai un tableau avec une colonne projet (valeurs récupérer par une requète) et une autre colonne où l'utilisateur doit saisir des valeurs, la colonne pourcentage.
C'est lors de l'enregistrement des valeurs que j'ai un problème, en effet je n'arrive pas à récupérer les valeurs des pourcentage en fonction des projets.
Voilà j'espère que vous pourrz m'aider. Merci d'avance
J'ai un petit problème avec mon code, j'ai un tableau avec une colonne projet (valeurs récupérer par une requète) et une autre colonne où l'utilisateur doit saisir des valeurs, la colonne pourcentage.
C'est lors de l'enregistrement des valeurs que j'ai un problème, en effet je n'arrive pas à récupérer les valeurs des pourcentage en fonction des projets.
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>">
<html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>">
<head>
<title>Fiche pourcentage</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="menu"> <?php $page="utilisateur1"; include($_SERVER["DOCUMENT_ROOT"]."test/menu.php"); ?></div>
<?php
include("fonction.php");
//Récupération de la valeur des pourcentages
$valeur = $_POST['pourcentage'];
//Récupération des nom des projets
$proj=$_POST['projet'];
$result = faire_requete("SELECT nom_projet FROM projet WHERE nom_projet='$proj';","fichetemps");
$n1 = mysql_num_rows($result);
for ($i=1; $i<=$n1+1; $i++)
{
$pourcent=$_POST['pourcentage'.$i];
$pro = $_POST['projet'.$i];
$res=faire_requete("INSERT INTO pourcentage ( id_pourcentage, valeur_pourcentage, nom_projet) VALUES (NULL,'$pourcent', '$pro');","fichetemps");
}
$i++;
echo '<input type="button" onClick="parent.location.href = \'fichepourcentage.php\'" value="Retour"/></center/>';
?>
</body>
</html>
Voilà j'espère que vous pourrz m'aider. Merci d'avance
Autres pages sur : recuperer valeur post
Lassé par la pub ? Créez un compte
en fait je viens juste de résoudre mon problème. Merci quand même.
D'autre part, j'ai un autre problème, en fait j'aimerai avoir une liste déroulante sur une page et que à l'appuie d'un bouton submit( ou pas) j'ai un tableau qui s'affiche sur la meme page suivant la valeur choisis dans la liste déroulante. Donc je voudrais savoir si cela differai par rapport à deux liste lier.
D'autre part, j'ai un autre problème, en fait j'aimerai avoir une liste déroulante sur une page et que à l'appuie d'un bouton submit( ou pas) j'ai un tableau qui s'affiche sur la meme page suivant la valeur choisis dans la liste déroulante. Donc je voudrais savoir si cela differai par rapport à deux liste lier.
Salut,
Si tu veux appuyer sur un bouton submit, il suffit de faire un formulaire tout simple où tu affiches les données dans ton tableau si une valeur de ta liste déroulante est sélectionnée.
Si tu ne veux pas appuyer sur un bouton, il te faudra utiliser un appel asynchrone afin de récupérer les données du tableau et les afficher automatiquement lors du changement de valeurs.
Si tu veux appuyer sur un bouton submit, il suffit de faire un formulaire tout simple où tu affiches les données dans ton tableau si une valeur de ta liste déroulante est sélectionnée.
Si tu ne veux pas appuyer sur un bouton, il te faudra utiliser un appel asynchrone afin de récupérer les données du tableau et les afficher automatiquement lors du changement de valeurs.
Merci beaucoup de ton aide, j'ai une autre question (je sais cela fait beaucoup de question), est ce que ça serait possible d'afficher sur une meme page, plusieurs tableaux. je m'explique, j'ai plusieurs services qui comprennent chacun plusieurs projet, et donc j'aimerai que sur une meme page afficher des tableaux de chacun de mes services avec leurs projets. j'espere que c'est comprehensible ce que je dis lol. Merci d'avance
Mince j'ai oublié de mettre le code désolé
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>">
<html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>">
<head>
<title>Aperçu des fiche de temps</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form method="post" action="">
<div id="menu"> <?php $page="visualisation"; include($_SERVER["DOCUMENT_ROOT"]."test/menu.php"); ?></div><br/>
<?php
include("fonction.php");
echo '<label for="service">service :</label>';
echo '<select name="service">';
//Récupération de l'id de l'utilisateur connecté
$users = $_SESSION['id_user'];
//Appel de fonction
afficheListeService($users);
echo '<input Style="margin-left:180px; margin-right:180px;" type="submit" name="submit" value="Suivant"\n/>';
?>
<?php
if (isset($_POST['submit']))
{$service=$_POST['service'];
echo "</br>";
$date=$_POST['date'];
echo "<p><br><br>Date sélectionnée: $date</p>";
echo "<p>Service sélectionnée: $service</p>";
//Tableau des noms et des pourcentages des projets
echo "<table id='grille' border='1'>";
echo "<th>Nom projet</th>";
echo "<th>Pourcentage</th>";
echo "<tr>";
$res1=faire_requete("select pourcentage.nom_projet, pourcentage.valeur_pourcentage from pourcentage, projet WHERE projet.nom_projet = pourcentage.nom_projet and projet.nom_service='$service' and pourcentage.date = '$date';","fichetemps");
$nl1 = mysql_num_rows($res1);
for ($i=0; $i<$nl1; $i++)
{
$pro = mysql_fetch_assoc($res1);
$nom_projet=($pro['nom_projet']);
echo "<td align=\"center\">$nom_projet";
echo "</td>";
$valeur_pourcentage=($pro['valeur_pourcentage']);
echo "<td align=\"center\">$valeur_pourcentage";
echo "</td>";
echo "</tr>";
}
//$pro1 = mysql_fetch_assoc($res1);
echo "<th>Total</th>";
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "**" ) ;
//sélection de la base de données:
$db = mysql_select_db( "fichetemps" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement supprimer:
//requête SQL:
$sql = "SELECT SUM(valeur_pourcentage) FROM pourcentage, projet WHERE projet.nom_projet = pourcentage.nom_projet and projet.nom_service='$service' and pourcentage.date = '$date'";
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
list($sum) = mysql_fetch_row($requete);
echo "<td align=\"center\">$sum";
echo "</td>";
}
echo "</table>";
?>
</form>
</body></html>
</body>
</form>
</html>
<?php
echo '<div>';
echo '<p> Veuillez entrez une date : <input onclick="ds_sh(this);" name="date" readonly="readonly" style="cursor: text" /><br /></p>';
/*
echo '</div>';
echo '<label for="service">service :</label>';
echo '<select name="service">';
//Récupération de l'id de l'utilisateur connecté
$users = $_SESSION['id_user'];
//Appel de fonction
afficheListeService($users);
*/
echo '<input Style="margin-left:180px; margin-right:180px;" type="submit" name="submit" value="Suivant"\n/>';
?>
<?php
include("fonction.php");
if (isset($_POST['submit']))
{//$service=$_POST['service'];
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "fichetemps" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement supprimer:
//requête SQL:
$num = $_SESSION['id_user'];
$sql1 = "SELECT DISTINCT nom_service from service WHERE id_user='$num'";
//exécution de la requête:
$requete = mysql_query( $sql1, $cnx ) ;
$req = mysql_fetch_array($requete);
$req1 = mysql_num_rows($requete);
echo "</br>";
$date=$_POST['date'];
echo "<p><br><br>Date sélectionnée: $date</p>";
//Tableau des noms et des pourcentages des projets
for ($i=0; $i<$req1; $i++)
{ $a = $req['nom_service'];
echo $a;
$res1=faire_requete("select pourcentage.nom_projet, pourcentage.valeur_pourcentage from pourcentage, projet WHERE projet.nom_projet = pourcentage.nom_projet and projet.nom_service='$a' and pourcentage.date = '$date';","fichetemps");
$nl1 = mysql_num_rows($res1);
echo "<table id='grille' border='1'>";
echo "<th>Nom projet</th>";
echo "<th>Pourcentage</th>";
echo "<tr>";
for ($i=0; $i<$nl1; $i++)
{
$pro = mysql_fetch_assoc($res1);
$nom_projet=($pro['nom_projet']);
echo "<td align=\"center\">$nom_projet";
echo "</td>";
$valeur_pourcentage=($pro['valeur_pourcentage']);
echo "<td align=\"center\">$valeur_pourcentage";
echo "</td>";
echo "</tr>";
}$i++; }
Alors voilà j'ai essayé de faire comme tu m'a dit de boucler sur les services mais le problème c'ést que ça m'affiche que mon premier service avec les projets qui lui sont associé alors que j'ai plusieurs services avec d'autre projets. Donc voilà j'espere avoir été assez comprehensible. Merci beaucoup
OmaR a dit :
Le problème c'est que tu utilises la même variable $i pour 2 boucles imbriquées (lignes 64 et 78 de ton code).et ça devrait être bon
Je viens d'essayer et en fait ca ne marche pas, cela m'affiche plusieurs fois le meme service avec le meme tableau...
Je dois peut être te saouler mais j'ai un autre problème lol, en fait j'aimerai crée un tableau qui me permettra d'afficher le total des pourcentage pour les différents service et donc j'ai commencé à le crée mais par contre il ne m'affiche que le dernier total trouvé. Voici ce que j'ai fait pour l'instant:
j'espère avoir été assez compréhensible lol. Merci d'avance
<?php
echo '<div>';
echo '<p> Veuillez entrez une date : <input onclick="ds_sh(this);" name="date" readonly="readonly" style="cursor: text" /><br /></p>';
echo '<input Style="margin-left:180px; margin-right:180px;" type="submit" name="submit" value="Suivant"\n/>';
?>
<?php
include("fonction.php");
if (isset($_POST['submit']))
{//$service=$_POST['service'];
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "fichetemps" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement supprimer:
//requête SQL:
$num = $_SESSION['id_user'];
$sql1 = "SELECT DISTINCT nom_service from service WHERE id_user='$num'";
//exécution de la requête:
$requete = mysql_query( $sql1, $cnx ) ;
$req1 = mysql_num_rows($requete);
echo "</br>";
$date=$_POST['date'];
echo "<p><br><br>Date sélectionnée: $date</p>";
//Tableau des noms et des pourcentages des projets
for ($i=0; $i<$req1; $i++)
{
$req = mysql_fetch_array($requete);
$service = $req['nom_service'];
$res1=faire_requete("select pourcentage.nom_projet, pourcentage.valeur_pourcentage from pourcentage, projet WHERE projet.nom_projet = pourcentage.nom_projet and projet.nom_service='$service' and pourcentage.date = '$date';","fichetemps");
$nl1 = mysql_num_rows($res1);
echo "<table id='grille' border='1'>";
echo $service;
echo "<th>Nom projet</th>";
echo "<th>Pourcentage</th>";
echo "<tr>";
for ($j=0; $j<$nl1; $j++)
{
$pro = mysql_fetch_assoc($res1);
$nom_projet=($pro['nom_projet']);
echo "<td align=\"center\">$nom_projet";
echo "</td>";
$valeur_pourcentage=($pro['valeur_pourcentage']);
echo "<td align=\"center\">$valeur_pourcentage";
echo "</td>";
echo "</tr>";
}
echo "<th>Total</th>";
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "fichetemps" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement supprimer:
//requête SQL:
$sql2 = "SELECT SUM(valeur_pourcentage) FROM pourcentage, projet WHERE projet.nom_projet = pourcentage.nom_projet and projet.nom_service='$service' and pourcentage.date = '$date'";
//exécution de la requête:
$requete2 = mysql_query( $sql2, $cnx ) ;
list($sum) = mysql_fetch_row($requete2);
echo "<td align=\"center\">$sum";
echo "</td>";
}
}
echo "</table>";
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "fichetemps" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement supprimer:
//requête SQL:
$num1 = $_SESSION['id_user'];
echo "<table id='grille1' border='1'>";
$sql3 = "SELECT DISTINCT nom_service from service WHERE id_user='$num'";
//exécution de la requête:
$requete3 = mysql_query( $sql3, $cnx ) ;
$req3 = mysql_num_rows($requete3);
echo "<th>Total</th>";
echo "<th>Pourcentage</th>";
echo "<tr>";
for ($k=0; $k<$req3; $k++)
{
$ser = mysql_fetch_assoc($requete3);
$nom_serv=($ser['nom_service']);
echo "<td align=\"center\">$nom_serv";
echo "</td>";
//requête SQL:
$sql4 = "SELECT SUM(valeur_pourcentage) FROM pourcentage, projet WHERE projet.nom_projet = pourcentage.nom_projet and projet.nom_service='$service' and pourcentage.date = '$date'";
//exécution de la requête:
$requete4 = mysql_query( $sql4, $cnx ) ;
list($sum1) = mysql_fetch_row($requete4);
echo "<td align=\"center\">$sum1";
echo "</td>";
echo "</tr>";
}
echo "</table>";
?>
</form>
</body></html>
</body>
</form>
</html>
j'espère avoir été assez compréhensible lol. Merci d'avance
OmaR a dit :
Hmm, plutôt que de refaire une 2ème requête pour récupérer le total, tu peux calculer le total en PHP directement, ça évite de faire des requêtes supplémentaires sur la base de données.Dans ta boucle for, tu additionnes la valeur de ton pourcentage.
J'ai essayé de faire comme tu as dit mais le problème c'est que si je fais cette méthode, il me récupére mon dernier total et fais la somme de ce résultat x fois.
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "fichetemps" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement supprimer:
//requête SQL:
$num1 = $_SESSION['id_user'];
echo "<table id='grille1' border='1'>";
$sql3 = "SELECT DISTINCT nom_service from service WHERE id_user='$num'";
//exécution de la requête:
$requete3 = mysql_query( $sql3, $cnx ) ;
$req3 = mysql_num_rows($requete3);
echo "<th>Total</th>";
echo "<th>Pourcentage</th>";
echo "<tr>";
$total = 0;
for ($k=0; $k<$req3; $k++)
{
$ser = mysql_fetch_assoc($requete3);
$nom_serv=($ser['nom_service']);
echo "<td align=\"center\">$nom_serv";
echo "</td>";
$total += $sum;
echo "<td align=\"center\">$total";
echo "</td>";
echo "</tr>";
}
echo "</table>";
J'ai fais ça...
OmaR a dit :
Ca correspond à quoi $sum ? On ne voit pas son initialization.
<?php
include("fonction.php");
if (isset($_POST['submit']))
{//$service=$_POST['service'];
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "fichetemps" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement supprimer:
//requête SQL:
$num = $_SESSION['id_user'];
$sql1 = "SELECT DISTINCT nom_service from service WHERE id_user='$num'";
//exécution de la requête:
$requete = mysql_query( $sql1, $cnx ) ;
$req1 = mysql_num_rows($requete);
echo "</br>";
$date=$_POST['date'];
echo "<p><br><br>Date sélectionnée: $date</p>";
//Tableau des noms et des pourcentages des projets
for ($i=0; $i<$req1; $i++)
{
$req = mysql_fetch_array($requete);
$service = $req['nom_service'];
$res1=faire_requete("select pourcentage.nom_projet, pourcentage.valeur_pourcentage from pourcentage, projet WHERE projet.nom_projet = pourcentage.nom_projet and projet.nom_service='$service' and pourcentage.date = '$date';","fichetemps");
$nl1 = mysql_num_rows($res1);
echo "<table id='grille' border='1'>";
echo $service;
echo "<th>Nom projet</th>";
echo "<th>Pourcentage</th>";
echo "<tr>";
for ($j=0; $j<$nl1; $j++)
{
$pro = mysql_fetch_assoc($res1);
$nom_projet=($pro['nom_projet']);
echo "<td align=\"center\">$nom_projet";
echo "</td>";
$valeur_pourcentage=($pro['valeur_pourcentage']);
echo "<td align=\"center\">$valeur_pourcentage";
echo "</td>";
echo "</tr>";
}
echo "<th>Total</th>";
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "fichetemps" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement supprimer:
//requête SQL:
$sql2 = "SELECT SUM(valeur_pourcentage) FROM pourcentage, projet WHERE projet.nom_projet = pourcentage.nom_projet and projet.nom_service='$service' and pourcentage.date = '$date'";
//exécution de la requête:
$requete2 = mysql_query( $sql2, $cnx ) ;
list($sum) = mysql_fetch_row($requete2);
echo "<td align=\"center\">$sum";
echo "</td>";
}
echo "</table>";
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "fichetemps" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement supprimer:
//requête SQL:
$num1 = $_SESSION['id_user'];
echo "<table id='grille1' border='1'>";
$sql3 = "SELECT DISTINCT nom_service from service WHERE id_user='$num'";
//exécution de la requête:
$requete3 = mysql_query( $sql3, $cnx ) ;
$req3 = mysql_num_rows($requete3);
echo "<th>Total</th>";
echo "<th>Pourcentage</th>";
echo "<tr>";
$total = 0;
for ($k=0; $k<$req3; $k++)
{
$ser = mysql_fetch_assoc($requete3);
$nom_serv=($ser['nom_service']);
echo "<td align=\"center\">$nom_serv";
echo "</td>";
$total += $sum;
echo "<td align=\"center\">$total";
echo "</td>";
echo "</tr>";
}
echo "</table>";
}
?>
$sum correspond au total de mes pourcentages, en fait je voudrais faire la somme de tous ces totaux, c'est pour cela que j'ai additionné mes $sum mais ça ne marche pas car cela me fais récupère juste la valeur de mon dernier total, or moi je veux récupérer tous mes totaux et en faire la somme..
Non tu ne comprends pas ce que tu fais.
Quand on fait plusieurs connexion à la base de données dans la même page, quand on récupère plusieurs fois la même variable de session, qu'on fait des copier/coller de choses qu'on ne comprend pas, dont des commentaires qui n'ont rien à voir avec ce qui se passe juste en dessous, on ne comprend pas ce qu'on fait.
Et il suffit de voir ton code pour voir que tu ne comprends rien à ce que tu fais. Car vu la tête de ton code, avec des <th> qui n'étaient pas dans des <tr>, des <tr> qui sont ouverts avant les boucles et fermés dans la bouche, des <table> ouvert dans une boucle et fermé après la boucle...
Mais bon, ça doit être moi certainement. J'ai fait beaucoup plus qu'indenter ton code.
Mais vu comment tu le prends, je vais supprimer ce que j'ai fait, et tu t'amuseras à trouver quelqu'un d'autre pour t'aider.
Quand on fait plusieurs connexion à la base de données dans la même page, quand on récupère plusieurs fois la même variable de session, qu'on fait des copier/coller de choses qu'on ne comprend pas, dont des commentaires qui n'ont rien à voir avec ce qui se passe juste en dessous, on ne comprend pas ce qu'on fait.
Et il suffit de voir ton code pour voir que tu ne comprends rien à ce que tu fais. Car vu la tête de ton code, avec des <th> qui n'étaient pas dans des <tr>, des <tr> qui sont ouverts avant les boucles et fermés dans la bouche, des <table> ouvert dans une boucle et fermé après la boucle...
Mais bon, ça doit être moi certainement. J'ai fait beaucoup plus qu'indenter ton code.
Mais vu comment tu le prends, je vais supprimer ce que j'ai fait, et tu t'amuseras à trouver quelqu'un d'autre pour t'aider.
OmaR a dit :
Non tu ne comprends pas ce que tu fais.Quand on fait plusieurs connexion à la base de données dans la même page, quand on récupère plusieurs fois la même variable de session, qu'on fait des copier/coller de choses qu'on ne comprend pas, dont des commentaires qui n'ont rien à voir avec ce qui se passe juste en dessous, on ne comprend pas ce qu'on fait.
Et il suffit de voir ton code pour voir que tu ne comprends rien à ce que tu fais. Car vu la tête de ton code, avec des <th> qui n'étaient pas dans des <tr>, des <tr> qui sont ouverts avant les boucles et fermés dans la bouche, des <table> ouvert dans une boucle et fermé après la boucle...
Mais bon, ça doit être moi certainement. J'ai fait beaucoup plus qu'indenter ton code.
Mais vu comment tu le prends, je vais supprimer ce que j'ai fait, et tu t'amuseras à trouver quelqu'un d'autre pour t'aider.
Fallait le dire si tu ne savais pas faire ce que je te demandais au lieu de t'emporter parce que excuse moi mais mon code marchait très bien avant tes modifications (t'as juste changé mes for en while c'est tout), ma question ne portait pas sur cette partie du code sinon je te l'aurait demandé. Je le prends pas mal c'est plutôt toi qui t'emporte un peu trop vite. Ok je suis débutante c'est pour cela que je demande de l'aide or toi tu me rabaisse, c'est paradoxale tu ne trouve pas?
Ca m'étonnerait que ton code marchait très bien et que les tableaux générés soient corrects, vu l'emplacement de tes <table>, <tr>, <th>, <td> qui étaient positionnés n'importe comment, dont même certaines données qui étaient mises dans le tableau mais pas dans un <td> ou <th>.
Et je n'ai pas juste changé tes for en while, j'ai supprimé tout le code superficiel, j'ai supprimés des requêtes qui n'étaient pas nécessaires (le moins il y a de requêtes, le plus vite ça va aller), surtout que tu pouvais récupérer ces données sans faire de requête supplémentaire (ce que je t'ai indiqué dans une réponse précédemment):
Dans ta boucle for, tu additionnes la valeur de ton pourcentage.
Et la preuve que ton code ne marchait pas, c'est que tu es venue encore demander de l'aide.
Après, c'est possible que le code que je t'ai fourni ne marche pas (je ne l'ai pas testé), mais il corrigeait ton code en le rendant plus clair et en supprimant plein de choses qui n'étaient pas nécessaires.
Et je ne te rabaisse pas, je t'ai seulement dit que tu n'avais pas l'air de comprendre ce que tu fais (ni ce que je t'ai dit comme remarque).
Enfin bref...
Et je n'ai pas juste changé tes for en while, j'ai supprimé tout le code superficiel, j'ai supprimés des requêtes qui n'étaient pas nécessaires (le moins il y a de requêtes, le plus vite ça va aller), surtout que tu pouvais récupérer ces données sans faire de requête supplémentaire (ce que je t'ai indiqué dans une réponse précédemment):
Citation :
Hmm, plutôt que de refaire une 2ème requête pour récupérer le total, tu peux calculer le total en PHP directement, ça évite de faire des requêtes supplémentaires sur la base de données.Dans ta boucle for, tu additionnes la valeur de ton pourcentage.
Et la preuve que ton code ne marchait pas, c'est que tu es venue encore demander de l'aide.
Après, c'est possible que le code que je t'ai fourni ne marche pas (je ne l'ai pas testé), mais il corrigeait ton code en le rendant plus clair et en supprimant plein de choses qui n'étaient pas nécessaires.
Et je ne te rabaisse pas, je t'ai seulement dit que tu n'avais pas l'air de comprendre ce que tu fais (ni ce que je t'ai dit comme remarque).
Enfin bref...
En fait je pense que tu n'as pas compris ce que je voulais faire, mon code marchait très bien avant tes modifications, j'ai demandé ton aide pour rajouté un tableau qui me permettrai de faire la somme de mes totaux calculer dans mes différents services, c'est pour ça que j'ai demandé de l'aide, donc je pense qu'on s'est mal compris...
OmaR a dit :
Sauf que le tien ne fonctionnait pas vu que tu n'as pas réussi à faire la somme des pourcentages
Je sais pas si tu as vu mais quand je t'ai envoyé mon code, il y avait deux tableaux, le premier permettait l'affichage des projets pour chaque service et calculait sa somme (mon code marchait très bien) et le deuxième tableau permettait l'affichage des services avec leurs totaux (c'est ce tableaux dont j'ai eu des problème or toi tu m'as donné un code qui permettait l'affichage que du premier tableau or j'en avais pas besoins. Bref on s'est mal compris, je pense, je te remercis toute fois de ton aide pour les pécédents problème que j'ai eu, cela m'a beaucoup aidé. Merci
Hmm... en effet j'ai mal du comprendre ton dernier problème. Je pensais que tu voulais mettre le total dans le même tableau. C'est pour ça que je t'avais dit de ne pas utiliser de 2nde requête SQL et plutôt de calculer manuellement avec PHP, vu que les requêtes SQL sont des opérations lourdes. Désolé du coup, j'ai pas tout compris.
Bref... là aussi on doit pouvoir se passer de faire encore plein de requêtes SQL:
(Je n'ai pas testé, mais ça devrait le faire)
Edit: au passage, normalement il ne faut pas donner le même id à plusieurs éléments. Si tu veux mettre des styles CSS identiques, utilise une classe plutôt qu'un id, et sinon, supprime complètement les id='grille1'
Bref... là aussi on doit pouvoir se passer de faire encore plein de requêtes SQL:
<?php include("fonction.php" ); if (isset($_POST['submit'])) { $cnx = mysql_connect( "localhost", "root", ""); //sélection de la base de données: $db = mysql_select_db( "fichetemps"); $num = $_SESSION['id_user']; $sql1 = "SELECT DISTINCT nom_service from service WHERE id_user='$num'"; //exécution de la requête: $requete = mysql_query($sql1, $cnx); echo "</br>"; $date=$_POST['date']; echo "<p><br><br>Date sélectionnée: $date</p>"; //Tableau des noms et des pourcentages des projets while($req = mysql_fetch_array($requete)) { $service = $req['nom_service']; $res1=faire_requete("select pourcentage.nom_projet, pourcentage.valeur_pourcentage from pourcentage, projet WHERE projet.nom_projet = pourcentage.nom_projet and projet.nom_service='$service' and pourcentage.date = '$date';","fichetemps" ); echo $service; echo "<table id='grille' border='1'>"; echo "<tr>"; echo "<th>Nom projet</th>"; echo "<th>Pourcentage</th>"; echo "</tr>"; $total = 0; while($pro = mysql_fetch_assoc($res1)) { $nom_projet=($pro['nom_projet']); $valeur_pourcentage=($pro['valeur_pourcentage']); $total += $valeur_pourcentage; echo "<tr>"; echo "<td align=\"center\">$nom_projet</td>"; echo "<td align=\"center\">$valeur_pourcentage</td>"; echo "</tr>"; } // We save the total value for the specified service $totalByService[$service] = $total; echo "<tr>"; echo "<th>Total</th>"; echo "<td align=\"center\">$total</td>"; echo "</tr>"; echo "</table>"; } // We return to the start of the query results mysql_data_seek($requete, 0); echo "<table id='grille1' border='1'>"; echo "<tr>"; echo "<th>Service</th>"; echo "<th>Total</th>"; echo "</tr>"; while($row = mysql_fetch_assoc($requete)) { echo "<tr>"; $nom_serv=($row['nom_service']); echo "<td align=\"center\">$nom_serv</td>"; $total = $totalByService[$nom_serv]; echo "<td align=\"center\">$total</td>"; echo "</tr>"; } echo "</table>"; } ?>
(Je n'ai pas testé, mais ça devrait le faire)
Edit: au passage, normalement il ne faut pas donner le même id à plusieurs éléments. Si tu veux mettre des styles CSS identiques, utilise une classe plutôt qu'un id, et sinon, supprime complètement les id='grille1'
J'ai une dernière question... Est ce possible de creer des digrammes (camembert) à partir des valeurs de la base de données. Parceque j'ai cherché sur le net, et j'ai vu que les valeurs affiché sur le diagramme étaient que des valeurs en dur. Donc voilà je voulais savoir si c'était possible de faire ce genre de chose
Tu ne dois pas pouvoir faire ça directement avec PHP, mais tu dois pouvoir utiliser des librairies, tu as pChart qui te permet de faire ça gratuitement
Rebonjour, j'ai encore un petit problème mais cette fois-ci avec des graphiques, pour afficher des graphiques j'ai choisis d'utiliser la librairie jpGraph. Et pour générer ce graphique j'utilise des valeurs qui proviennent de ma base de données. Mon problème c'est que j'ai une erreur qui s'affiche: Erreur 'Illegal Pie Plot. Sum of all data is zero for Pie.'
Je sais pourquoi cette erreur s'affiche mais je sais pas comment le résoudre. Ce que je veux créer c'est un camembert qui permet d'afficher la répartition de mes projets en fonction du service choisis (en l'occurence le service est analyse). CErtes il y a des projets qui n'appartiennent pas au service, mais comment afficher juste les projets qui appartiennent à ce service?
Voici le code que j'ai fait pour l'instant:
Voilà, merci d'avance
Je sais pourquoi cette erreur s'affiche mais je sais pas comment le résoudre. Ce que je veux créer c'est un camembert qui permet d'afficher la répartition de mes projets en fonction du service choisis (en l'occurence le service est analyse). CErtes il y a des projets qui n'appartiennent pas au service, mais comment afficher juste les projets qui appartiennent à ce service?
Voici le code que j'ai fait pour l'instant:
<?php
include ("/jpgraph/jpgraph.php");
include ("/jpgraph/jpgraph_pie.php");
include ("/jpgraph/jpgraph_pie3d.php");
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DATABASE', '*');
$tableauService = array();
$tableauProjet = array();
// *****************************************************
// Extraction des données dans la base de données
// **************************************************
$sql = <<<EOF
SELECT
nom_service, nom_projet FROM `projet` WHERE nom_service = 'analyse'
EOF;
$mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Pb de connxion mysql');
@mysql_select_db(MYSQL_DATABASE) or die('Pb de sélection de la base');
$mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('Pb de requête');
while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) {
// Ajouter année devant, c'est pour la légende
$tableauProjet[] = "projet " . $row['nom_projet'];
$tableauService[] = $row['nom_service'];
}
// **************************************
// Création du graphique
// *****************************************
// On spécifie la largeur et la hauteur du graph
$graph = new PieGraph(1200,600);
// Ajouter une ombre au conteneur
$graph->SetShadow();
// Donner un titre
$graph->title->Set("Répartition des projets par service");
// Quelle police et quel style pour le titre
// Prototype: function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10)
// 1. famille
// 2. style
// 3. taille
$graph->title->SetFont(FF_GEORGIA,FS_BOLD, 12);
// Créer un camembert
$pie = new PiePlot3D($tableauProjet);
// Quelle partie se détache du reste
$pie->ExplodeSlice(2);
// Spécifier des couleurs personnalisées... #FF0000 ok
$pie->SetSliceColors(array('red', 'blue', 'green'));
// Légendes qui accompagnent le graphique, ici chaque projet avec sa couleur
$pie->SetLegends($tableauProjet);
// Position du graphique (0.5=centré)
$pie->SetCenter(0.4);
// Type de valeur (pourcentage ou valeurs)
$pie->SetValueType(PIE_VALUE_ABS);
// Personnalisation des étiquettes pour chaque partie
$pie->value->SetFormat('%d nom_projet');
// Personnaliser la police et couleur des étiquettes
$pie->value->SetFont(FF_ARIAL,FS_NORMAL, 9);
$pie->value->SetColor('blue');
// ajouter le graphique PIE3D au conteneur
$graph->Add($pie);
// Provoquer l'affichage
$graph->Stroke();
?>
Voilà, merci d'avance
j'ai réussit en faisant un nouveaux programme
J'aurais peut etre d'autre problème à l'avenir.... lol
<?php // content="text/plain; charset=utf-8"
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_pie.php');
// Some data
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "fichetemps" ) ;
$service=$_POST['service'];
/*requete sql*/
$query = "select nom_projet, nom_service from projet where nom_service='$service'";
/* EXECUTION DE LA REQUETE QUERY*/
$result = mysql_query($query);
//$ydonnees = array();
while($row = mysql_fetch_array($result)){
$ydonnees[] = $row["nom_projet"];
}
//$data = array(40,21,17,14,23);
// Create the Pie Graph.
$graph = new PieGraph(350,250);
$theme_class="DefaultTheme";
//$graph->SetTheme(new $theme_class());
// Set A title for the plot
$graph->title->Set("A Simple Pie Plot");
$graph->SetBox(true);
// Create
$p1 = new PiePlot($ydonnees);
$graph->Add($p1);
$p1->SetLegends($ydonnees);
$p1->ShowBorder();
$p1->SetColor('black');
$graph->Stroke();
?>
J'aurais peut etre d'autre problème à l'avenir.... lol
Bah dans ta boucle while, tu initialisais 2 tableaux: $tableauProject et $tableauService.
A moins que tes titres soient trompeurs, $tableauProject et $tableauService ne contiennent que des chaines de caractères (les noms des projets et les noms de services).
Comment tu veux faire des graphiques de données avec des noms ?
A moins que tes titres soient trompeurs, $tableauProject et $tableauService ne contiennent que des chaines de caractères (les noms des projets et les noms de services).
Comment tu veux faire des graphiques de données avec des noms ?
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- solutionsRécupérer une valeur php
- ForumJavascript récupérer valeur prompt
- ForumRécupérer valeur prompt javascript
- ForumRécupérer la valeur d'un select php
- solutionsRécupérer valeur d'une liste déroulante php
- ForumRécupérer valeur liste déroulante php
- ForumPhp recuperer valeur checkbox post
- ForumRécupérer post
- ForumVb.net recuperer valeur textbox post
- solutionsPost valeur variable php
- Voir plus
lol
Si tu as besoin de détails sur ce qui est fait, n'hésites pas.