par
Cypher_PHP » 24 nov. 2008, 10:50
Bonjour
je m'adresse à vous
je prepare une liste sous forme de tableau tout en récupérant des données issues de deux tables
cette liste m'affichera plusieurs colonnes
- la premiere : les numéros (ceux des id_session)
- la deuxième : total des places
- la 3ème: le nombre de places inscrites (sera calculé à partir d'une requete)
- la 4ème : le nombre de places disponibles (sera calculé à partir d'une requete)
donc les deux dernieres colonnes doivent faire des calculs à partir de ces données dans les deux tables
- pour la 3ème, voici le code sql
SELECT session.id_session, places, count(agent.id_session) AS Inscrits, (places - Inscrits) AS Restant FROM session, agent WHERE session.id_session = agent.id_session AND visible = "O" GROUP BY id_session
resultat: la requete m'annonce "impossible" alors il y aurait un erreur dans cette requete?
Voici la structure "agents"
Code : Tout sélectionner
CREATE TABLE `agent` (
`id_agent` int(3) NOT NULL auto_increment,
`nom` varchar(50) NOT NULL,
`prenom` varchar(50) NOT NULL,
`id_session` int(3) NOT NULL,
`session` varchar(20) NOT NULL,
KEY `id_agent` (`id_agent`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
voici la structure "session"
Code : Tout sélectionner
CREATE TABLE `session` (
`id_session` int(3) NOT NULL auto_increment,
`session` varchar(25) NOT NULL,
`intitule` varchar(50) NOT NULL,
`commentaires` text NOT NULL,
`nomcomplet` varchar(50) NOT NULL,
`horaire_matin` varchar(17) NOT NULL,
`horaire_apres_midi` varchar(17) NOT NULL,
`salle` varchar(10) NOT NULL,
`places` varchar(3) NOT NULL,
`code` varchar(10) NOT NULL,
`date_debut` varchar(17) NOT NULL,
`date_fin` varchar(17) NOT NULL,
`visible` char(1) default NULL,
KEY `id_session` (`id_session`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
voici le code php
<?php
include('admin/fonctions.php');
connLocalhost();
// ------------ sélection des paramètres pour générer un tableau ------------
$sql_total = 'SELECT session.id_session, places, count(agent.id_session) AS Inscrits, (places - Inscrits) AS Restant FROM session, agent WHERE session.id_session = agent.id_session AND visible = "O" GROUP BY id_session';
$req = mysql_query($sql_total)or die ('impossible');//
$list = mysql_num_rows($req);
$row = mysql_fetch_array($req);
// include du fichier header
include("admin/header.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title></title>
<link rel="stylesheet" type="text/css" href= "admin/gestioforma.css">
</head>
<body class="body">
<div id="contenu"><div id="connect_agent">
<br>
<?php
if($list)
echo '<table style="text-align: left; width: 100%; height: 74px;" border="0" cellpadding="2" cellspacing="2"><tbody>'."\n";
{
// début du tableau
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr><td bgcolor="#669999"><u>Id</u></td>';
echo '<td bgcolor="#669999"><u>Total</u></td>';
echo '<td bgcolor="#669999"><u>Inscrits</u></td>';
echo '<td bgcolor="#669999"><u>Restant</u></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($req))
{
echo '<tr style="background-color: #BBAA99;">';
$bgcolor =($i++&1)?'#DDFF00' : '#BBCC33';
echo "<tr bgcolor='".$bgcolor."' style='color:black';>";
echo "<td>".$row['id_session']."</td>";
echo "<td>".$row['places']."</td>";
echo "<td></td>";
echo "<td></td>";
}
echo '</tr>'."\n";
}
echo '</table>'."\n";
?>
<br>
</div>
<?php
mysql_free_result($req);
//-------------------------------------------------------
// include du fichier footer
include("admin/footer.php") ;
?>
</div>
</body>
</html>
Bonjour
je m'adresse à vous
je prepare une liste sous forme de tableau tout en récupérant des données issues de deux tables
cette liste m'affichera plusieurs colonnes
- la premiere : les numéros (ceux des id_session)
- la deuxième : total des places
- la 3ème: le nombre de places inscrites (sera calculé à partir d'une requete)
- la 4ème : le nombre de places disponibles (sera calculé à partir d'une requete)
donc les deux dernieres colonnes doivent faire des calculs à partir de ces données dans les deux tables
- pour la 3ème, voici le code sql
SELECT session.id_session, places, count(agent.id_session) AS Inscrits, (places - Inscrits) AS Restant FROM session, agent WHERE session.id_session = agent.id_session AND visible = "O" GROUP BY id_session
resultat: la requete m'annonce "impossible" alors il y aurait un erreur dans cette requete?
Voici la structure "agents"
[code]
CREATE TABLE `agent` (
`id_agent` int(3) NOT NULL auto_increment,
`nom` varchar(50) NOT NULL,
`prenom` varchar(50) NOT NULL,
`id_session` int(3) NOT NULL,
`session` varchar(20) NOT NULL,
KEY `id_agent` (`id_agent`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
[/code]
voici la structure "session"
[code]
CREATE TABLE `session` (
`id_session` int(3) NOT NULL auto_increment,
`session` varchar(25) NOT NULL,
`intitule` varchar(50) NOT NULL,
`commentaires` text NOT NULL,
`nomcomplet` varchar(50) NOT NULL,
`horaire_matin` varchar(17) NOT NULL,
`horaire_apres_midi` varchar(17) NOT NULL,
`salle` varchar(10) NOT NULL,
`places` varchar(3) NOT NULL,
`code` varchar(10) NOT NULL,
`date_debut` varchar(17) NOT NULL,
`date_fin` varchar(17) NOT NULL,
`visible` char(1) default NULL,
KEY `id_session` (`id_session`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
[/code]
voici le code php
[php]
<?php
include('admin/fonctions.php');
connLocalhost();
// ------------ sélection des paramètres pour générer un tableau ------------
$sql_total = 'SELECT session.id_session, places, count(agent.id_session) AS Inscrits, (places - Inscrits) AS Restant FROM session, agent WHERE session.id_session = agent.id_session AND visible = "O" GROUP BY id_session';
$req = mysql_query($sql_total)or die ('impossible');//
$list = mysql_num_rows($req);
$row = mysql_fetch_array($req);
// include du fichier header
include("admin/header.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title></title>
<link rel="stylesheet" type="text/css" href= "admin/gestioforma.css">
</head>
<body class="body">
<div id="contenu"><div id="connect_agent">
<br>
<?php
if($list)
echo '<table style="text-align: left; width: 100%; height: 74px;" border="0" cellpadding="2" cellspacing="2"><tbody>'."\n";
{
// début du tableau
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr><td bgcolor="#669999"><u>Id</u></td>';
echo '<td bgcolor="#669999"><u>Total</u></td>';
echo '<td bgcolor="#669999"><u>Inscrits</u></td>';
echo '<td bgcolor="#669999"><u>Restant</u></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($req))
{
echo '<tr style="background-color: #BBAA99;">';
$bgcolor =($i++&1)?'#DDFF00' : '#BBCC33';
echo "<tr bgcolor='".$bgcolor."' style='color:black';>";
echo "<td>".$row['id_session']."</td>";
echo "<td>".$row['places']."</td>";
echo "<td></td>";
echo "<td></td>";
}
echo '</tr>'."\n";
}
echo '</table>'."\n";
?>
<br>
</div>
<?php
mysql_free_result($req);
//-------------------------------------------------------
// include du fichier footer
include("admin/footer.php") ;
?>
</div>
</body>
</html>
[/php]