PB avec fonction SUM() ???
Posté : 15 févr. 2005, 14:21
Bonjour le forum,
hier, j'avais un pb pour obtenir la somme de mes points en fonction des dossiers. ce pb est résolut mais m'a généré un autre souci.
en effet, j'obtiens bien ma somme des points par dossiers mais le probleme et que si j'enregistre un nouveau dossier, le nombre correspondant n'existe pas car aucune opération n'a encore était saisie (dans la table "points").
Le nouveau dossier n'est donc pas visible lors de ma consultation dont voici le code:
comment faire pour obtenir néanmoins tous les dossiers , meme ceux qui n'ont pas de points???
je ne sais pas si c bien clair :=(
en tout cas, merci de votre aide,
FAb
hier, j'avais un pb pour obtenir la somme de mes points en fonction des dossiers. ce pb est résolut mais m'a généré un autre souci.
en effet, j'obtiens bien ma somme des points par dossiers mais le probleme et que si j'enregistre un nouveau dossier, le nombre correspondant n'existe pas car aucune opération n'a encore était saisie (dans la table "points").
Le nouveau dossier n'est donc pas visible lors de ma consultation dont voici le code:
<?php require_once('../../Connections/ateliermeca.php'); ?>
<?php
$maxRows_registrepoints = 10;
$pageNum_registrepoints = 0;
if (isset($_GET['pageNum_registrepoints'])) {
$pageNum_registrepoints = $_GET['pageNum_registrepoints'];
}
$startRow_registrepoints = $pageNum_registrepoints * $maxRows_registrepoints;
mysql_select_db($database_ateliermeca, $ateliermeca);
$query_registrepoints = "SELECT registre.NumOT, registre.NumPompe, registre.Marques, registre.Models, registre.Datedebut, registre.Cloture, models.Models, marques.Marques, registre.NumDossier, SUM(points.Points) FROM points, registre, models, marques WHERE (registre.ID=points.Numdossier) and (registre.Marques=marques.ID) AND (registre.Models=models.ID) GROUP BY registre.Numdossier ORDER BY registre.NumDossier";
$query_limit_registrepoints = sprintf("%s LIMIT %d, %d", $query_registrepoints, $startRow_registrepoints, $maxRows_registrepoints);
$registrepoints = mysql_query($query_limit_registrepoints, $ateliermeca) or die(mysql_error());
$row_registrepoints = mysql_fetch_assoc($registrepoints);
if (isset($_GET['totalRows_registrepoints'])) {
$totalRows_registrepoints = $_GET['totalRows_registrepoints'];
} else {
$all_registrepoints = mysql_query($query_registrepoints);
$totalRows_registrepoints = mysql_num_rows($all_registrepoints);
}
$totalPages_registrepoints = ceil($totalRows_registrepoints/$maxRows_registrepoints)-1;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><!-- InstanceBegin template="../../Templates/registre.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>Registre: CONSULTATION</title>
<!-- InstanceEndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- InstanceBeginEditable name="head" -->
<link href="../../Templates/titre_zone.css" rel="stylesheet" type="text/css">
<link href="../../Templates/style_attention.css" rel="stylesheet" type="text/css">
<!-- InstanceEndEditable -->
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
<link href="style_entete.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
background-image: url(../../Model/bg_grad.jpg);
}
-->
</style>
<link href="menu_gauche.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.Style1 {font-size: 24px}
.texte {
font-family: Arial, Helvetica, sans-serif;
color: #FF0000;
}
.Style2 {font-size: 14px}
.Style9 {color: #F2F2F2}
-->
</style>
</head>
<body>
<div id="Layer3" style="position:absolute; left:14px; top:10px; width:170px; height:23px; z-index:2; visibility: visible; font-style: italic; color: #FF0000; font-weight: bold;">
<div align="center" class="Style1"><a href="../sommaire.php">PONTICELLI</a></div>
</div>
<div id="Navhaut" style="position:absolute; left:11px; top:46px; width:1023px; height:15px; visibility: visible; z-index: 2;"><img src="../../Model/gblnav_left.gif" width="5" height="32"><a href="registregeneral.php"><img src="../../Model/glbnav_background.gif" width="165" height="32" border="0"></a><img src="../../Model/glbnav_background2.gif" width="4" height="32"><a href="../Expertise/expertisegeneral.php"><img src="../../Model/glbnav_background.gif" width="165" height="32" border="0"></a><img src="../../Model/glbnav_background2.gif" width="4" height="32"><a href="../Actions/actionsgeneral.php"><img src="../../Model/glbnav_background.gif" width="165" height="32" border="0"></a><img src="../../Model/glbnav_background2.gif" width="4" height="32"><a href="../FDT/fdtgeneral.php"><img src="../../Model/glbnav_background.gif" width="165" height="32" border="0"></a><img src="../../Model/glbnav_background2.gif" width="4" height="32"><a href="../Modifbasesannexes/mbageneral.php"><img src="../../Model/glbnav_background.gif" width="165" height="32" border="0"></a><img src="../../Model/glbnav_background2.gif" width="4" height="32"><a href="../Statistiques/statistiquegeneral.php"><img src="../../Model/glbnav_background.gif" width="165" height="32" border="0"></a><img src="../../Model/glbnav_right.gif" width="5" height="32"></div>
<div id="GestOT" style="position:absolute; left:21px; top:53px; width:159px; height:21px; z-index:3; visibility: visible;" class="entete">
<div align="center" class="entete">REGISTRE</div>
</div>
<div id="Layer1" style="position:absolute; left:187px; top:95px; width:841px; height:510px; z-index:4"><!-- InstanceBeginEditable name="zone" -->
<p><span class="titrezone">Dossiers existants dans la Base de DonnEes:</span><br>
<span class="attention">ATTENTION: seuls les OT dont les points été remplis dans la section FDT apparaissent</span><br>
</p>
<table border="1">
<tr>
<td width="110">NumOT</td>
<td width="100">NumPompe</td>
<td width="100">Marques</td>
<td width="100">Models</td>
<td width="200">Datedebut</td>
<td width="100">Cloture</td>
<td>NumDossier</td>
<td>SUM(points.Points)</td>
</tr>
<?php do { ?>
<tr>
<td width="110"><?php echo $row_registrepoints['NumOT']; ?></td>
<td width="100"><?php echo $row_registrepoints['NumPompe']; ?></td>
<td width="100"><?php echo $row_registrepoints['Marques']; ?></td>
<td width="100"><?php echo $row_registrepoints['Models']; ?></td>
<td width="200"><?php echo $row_registrepoints['Datedebut']; ?></td>
<td width="100"><?php echo $row_registrepoints['Cloture']; ?></td>
<td><?php echo $row_registrepoints['NumDossier']; ?></td>
<td><?php echo $row_registrepoints['SUM(points.Points)']; ?></td>
</tr>
<?php } while ($row_registrepoints = mysql_fetch_assoc($registrepoints)); ?>
</table>
</p>
je pense que mon pb vient du fait que la fonction SUM renvoie "NULL" si il n'y a rien a "summer".comment faire pour obtenir néanmoins tous les dossiers , meme ceux qui n'ont pas de points???
je ne sais pas si c bien clair :=(
en tout cas, merci de votre aide,
FAb