trouver des enregistrements en fction d'un seuil

Mammouth du PHP | 19672 Messages

10 oct. 2005, 10:50

Je comprends mal: la requête telle quelle est syntaxiquement correcte et ne retournera pas d'erreur, mais elle ne retournera pas de résultat non plus...
  • AND registre.Datedebut > 'colname1' <== Le champ Datedebut est du type DATE ? donc comparer avec une chaine de caractère est syntaxiquement juste mais pratiquement incohérent;
  • AND registre.Datedebut > 'colname2' <== Même motif, même punition;
  • AND 'test' > 'colname3' <== Là, on compare deux chaines de caractères, mais pour quoi faire ???
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

10 oct. 2005, 18:59

alut,

pour les colname1 & 2, je compare bien des dates avec des dates!
les resultats retournés sont bien compris entre les deux dates spécifiées dans les zones de texte de ma page.

par contre, pour le seuil, qui se trouve dans la zone texte et qui correspond a colname3, je crois qu'il n'est pas comparer avec les sommes des points issues du "SUM(blablabla)" ds mon select
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

10 oct. 2005, 19:06

Dois-je donc comprendre que ce n'est pas la requête générée que tu as affiché ? Et si tu nous montrais la requête générée, récupérée suite à un truc du style echo($requete) par exemple. Ça m'éviterait de spéculer des des données fausses au départ :?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

10 oct. 2005, 19:17

partie requete
<?php require_once('../../Connections/ateliermeca.php'); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];

$maxRows_stataffichage = 10;
$pageNum_stataffichage = 0;
if (isset($_GET['pageNum_stataffichage'])) {
  $pageNum_stataffichage = $_GET['pageNum_stataffichage'];
}
$startRow_stataffichage = $pageNum_stataffichage * $maxRows_stataffichage;

$colname3_stataffichage = "1";
if (isset($_GET['valeur'])) {
  $colname3_stataffichage = (get_magic_quotes_gpc()) ? $_GET['valeur'] : addslashes($_GET['valeur']);
}
$colname1_stataffichage = "1";
if (isset($_GET['datemin'])) {
  $colname1_stataffichage = (get_magic_quotes_gpc()) ? $_GET['datemin'] : addslashes($_GET['datemin']);
}
$colname2_stataffichage = "1";
if (isset($_GET['datemax'])) {
  $colname2_stataffichage = (get_magic_quotes_gpc()) ? $_GET['datemax'] : addslashes($_GET['datemax']);
}
mysql_select_db($database_ateliermeca, $ateliermeca);
$query_stataffichage = sprintf("SELECT registre.NumDossier, registre.NumOT, registre.NumPompe, registre.Marques, registre.Models, registre.Secteur, registre.Urgence, registre.Datedebut, registre.Cloture, SUM(points.Points) AS test FROM registre, points WHERE registre.ID = points.Numdossier  AND registre.Datedebut > '%s'  AND registre.Datedebut < '%s'  AND 'test'>'%s' GROUP BY registre.NumDossier ORDER BY test Desc", $colname1_stataffichage,$colname2_stataffichage,$colname3_stataffichage);
$query_limit_stataffichage = sprintf("%s LIMIT %d, %d", $query_stataffichage, $startRow_stataffichage, $maxRows_stataffichage);
$stataffichage = mysql_query($query_limit_stataffichage, $ateliermeca) or die(mysql_error());
$row_stataffichage = mysql_fetch_assoc($stataffichage);

if (isset($_GET['totalRows_stataffichage'])) {
  $totalRows_stataffichage = $_GET['totalRows_stataffichage'];
} else {
  $all_stataffichage = mysql_query($query_stataffichage);
  $totalRows_stataffichage = mysql_num_rows($all_stataffichage);
}
$totalPages_stataffichage = ceil($totalRows_stataffichage/$maxRows_stataffichage)-1;

$queryString_stataffichage = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_stataffichage") == false && 
        stristr($param, "totalRows_stataffichage") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_stataffichage = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_stataffichage = sprintf("&totalRows_stataffichage=%d%s", $totalRows_stataffichage, $queryString_stataffichage);
?>
partie tableau
  <p>texte</p>
  <form name="form1" method="get" action="statistiquedossierdd.php">
    <p>
  <input name="datemin" type="text" id="datemin">
&agrave;
  <input name="datemax" type="text" id="datemax">
  <br>
Limite de points des dossiers:
<input name="valeur" type="text" id="valeur" value="1">
  <input type="submit" name="Submit" value="Afficher">
    </p>
  </form>
  <table border="1">
    <tr>
      <td><div align="center"><strong>NumDossier</strong></div></td>
      <td><div align="center"><strong>NumOT</strong></div></td>
      <td><div align="center"><strong>NumPompe</strong></div></td>
      <td><div align="center"><strong>Marques</strong></div></td>
      <td><div align="center"><strong>Models</strong></div></td>
      <td><div align="center"><strong>Secteur</strong></div></td>
      <td><div align="center"><strong>Urgence</strong></div></td>
      <td><div align="center"><strong>Cloture</strong></div></td>
      <td><div align="center"><strong>Datedebut</strong></div></td>
      <td><div align="center"><strong>Points</strong></div></td>
    </tr>
    <?php do { ?>
    <tr>
      <td><div align="center"><?php echo $row_stataffichage['NumDossier']; ?></div></td>
      <td><div align="center"><?php echo $row_stataffichage['NumOT']; ?></div></td>
      <td><div align="center"><?php echo $row_stataffichage['NumPompe']; ?></div></td>
      <td><div align="center"><?php echo $row_stataffichage['Marques']; ?></div></td>
      <td><div align="center"><?php echo $row_stataffichage['Models']; ?></div></td>
      <td><div align="center"><?php echo $row_stataffichage['Secteur']; ?></div></td>
      <td><div align="center"><?php echo $row_stataffichage['Urgence']; ?></div></td>
      <td><div align="center"><?php echo $row_stataffichage['Cloture']; ?></div></td>
      <td><div align="center"><?php echo $row_stataffichage['Datedebut']; ?></div></td>
      <td><div align="center"><?php echo $row_stataffichage['test']; ?></div></td>
    </tr>
    <?php } while ($row_stataffichage = mysql_fetch_assoc($stataffichage)); ?>
  </table>
  
  <table border="0" width="50%" align="center">
    <tr>
      <td width="23%" align="center">
        <?php if ($pageNum_stataffichage > 0) { // Show if not first page ?>
        <a href="<?php printf("%s?pageNum_stataffichage=%d%s", $currentPage, 0, $queryString_stataffichage); ?>"><img src="First.gif" border=0></a>
        <?php } // Show if not first page ?>
      </td>
      <td width="31%" align="center">
        <?php if ($pageNum_stataffichage > 0) { // Show if not first page ?>
        <a href="<?php printf("%s?pageNum_stataffichage=%d%s", $currentPage, max(0, $pageNum_stataffichage - 1), $queryString_stataffichage); ?>"><img src="Previous.gif" border=0></a>
        <?php } // Show if not first page ?>
      </td>
      <td width="23%" align="center">&nbsp; Enregistrements <div align="center"><?php echo ($startRow_stataffichage + 1) ?> &agrave; <?php echo min($startRow_stataffichage + $maxRows_stataffichage, $totalRows_stataffichage) ?> sur <?php echo $totalRows_stataffichage ?> </div></td>
      <td width="23%" align="center">
        <?php if ($pageNum_stataffichage < $totalPages_stataffichage) { // Show if not last page ?>
        <a href="<?php printf("%s?pageNum_stataffichage=%d%s", $currentPage, min($totalPages_stataffichage, $pageNum_stataffichage + 1), $queryString_stataffichage); ?>"><img src="Next.gif" border=0></a>
        <?php } // Show if not last page ?>
      </td>
      <td width="23%" align="center">
        <?php if ($pageNum_stataffichage < $totalPages_stataffichage) { // Show if not last page ?>
        <a href="<?php printf("%s?pageNum_stataffichage=%d%s", $currentPage, $totalPages_stataffichage, $queryString_stataffichage); ?>"><img src="Last.gif" border=0></a>
        <?php } // Show if not last page ?>      </td>
    </tr>
  </table>
  <br>
  <p>&nbsp;</p>
je suis dsl de mettre une telle tartine, mais je ne veux pas te faire perdre ton temps en donnant les mauvaises infos, dc qui peux le plus, ...[/php]
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

10 oct. 2005, 19:37

Dois-je donc comprendre que ce n'est pas la requête générée que tu as affiché ? Et si tu nous montrais la requête générée, récupérée suite à un truc du style echo($requete) par exemple. Ça m'éviterait de spéculer des des données fausses au départ :?
La requête générée, pas ce qui sert à générer la requête.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

10 oct. 2005, 19:44

et je vois ca comment? :oops:
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

10 oct. 2005, 20:29

Ok, je vais le mettre en plus visible:
Dois-je donc comprendre que ce n'est pas la requête générée que tu as affiché ? Et si tu nous montrais la requête générée, récupérée suite à un truc du style echo($requete) par exemple. Ça m'éviterait de spéculer des des données fausses au départ :?
La requête générée, pas ce qui sert à générer la requête.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

10 oct. 2005, 20:41

je suis pas ur que ce soit ca que tu attends :?

obtenu

Code : Tout sélectionner

SELECT registre.NumDossier, registre.NumOT, registre.NumPompe, registre.Marques, registre.Models, registre.Secteur, registre.Urgence, registre.Datedebut, registre.Cloture, SUM(points.Points) AS test FROM registre, points WHERE registre.ID = points.Numdossier AND registre.Datedebut > '%s' AND registre.Datedebut < '%s' AND 'test'>'%s' GROUP BY registre.NumDossier ORDER BY test Desc111


code tapé
<?php echo "SELECT registre.NumDossier, registre.NumOT, registre.NumPompe, registre.Marques, registre.Models, registre.Secteur, registre.Urgence, registre.Datedebut, registre.Cloture, SUM(points.Points) AS test FROM registre, points WHERE registre.ID = points.Numdossier  AND registre.Datedebut > '%s'  AND registre.Datedebut < '%s'  AND 'test'>'%s' GROUP BY registre.NumDossier ORDER BY test Desc", $colname1_stataffichage,$colname2_stataffichage,$colname3_stataffichage  ?>
   
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

10 oct. 2005, 20:55

On va peut-être finir par y arriver : tu as regardé la requête que tu m'as collée là ?
Essaye donc avec :
echo($query_limit_stataffichage);
Et colle moi le résultat qui s'affiche dans ton navigateur.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

10 oct. 2005, 21:06

Notice: Undefined variable: query_limit_staaffichage in c:\php\easyphp1-7\www\ateliermeca\pages\statistiques\statistiquedossierdd.php on line 171


message d'erreur
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

10 oct. 2005, 21:09

Je me demande si tu arrives à suivre ce que je te dis et si tu sais vraiment de quoi je te parle là. Tu sais d'où je sors cette variable au moins ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

10 oct. 2005, 21:25

franchement? nan, pas trop
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

10 oct. 2005, 21:28

Un extrait de ton propre code :
<?php
//...
mysql_select_db($database_ateliermeca, $ateliermeca);
$query_stataffichage = sprintf("SELECT registre.NumDossier, registre.NumOT, registre.NumPompe, registre.Marques, registre.Models, registre.Secteur, registre.Urgence, registre.Datedebut, registre.Cloture, SUM(points.Points) AS test FROM registre, points WHERE registre.ID = points.Numdossier  AND registre.Datedebut > '%s'  AND registre.Datedebut < '%s'  AND 'test'>'%s' GROUP BY registre.NumDossier ORDER BY test Desc", $colname1_stataffichage,$colname2_stataffichage,$colname3_stataffichage);
$query_limit_stataffichage = sprintf("%s LIMIT %d, %d", $query_stataffichage, $startRow_stataffichage, $maxRows_stataffichage);
$stataffichage = mysql_query($query_limit_stataffichage, $ateliermeca) or die(mysql_error());
$row_stataffichage = mysql_fetch_assoc($stataffichage); 
//...
?>
Recherche cette partie, repère la variable en question: si la tu n'allumes pas, j'ai peur que ton cas soit un peu désespéré :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

10 oct. 2005, 21:42

est ce que ca viendrait des '%s' ??? :cry:
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

10 oct. 2005, 21:55

Ta question m'indique que tu ne comprends pas la fonction printf...:-k

Bon: on va y aller par étape: dans un premier temps, tu vas me dire ce que tu as compris et on complètera les trous.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: