fonctionSUM() qui cache des enregistrements!!! :=(

Eléphant du PHP | 289 Messages

15 févr. 2005, 20:37

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:
<?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; 
?> 

... 

<p><span class="titrezone">Dossiers existants dans la Base de DonnEes:</span><br> 
    <span class="attention">ATTENTION: seuls les OT dont les points &eacute;t&eacute; 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>
est ce que quelqu'un aurai une idée? on m'as parlé de left join mais si je l'applique, j'ai un message d'erreur:1064 ...

merci de votre aide,
FAb