Requête count

Résolu
haikei00X Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -  
 haikei00X -
Bonjour tout le monde.
J'ai un petit problème qui me bloque. Il s'agit de compter le nombre de lignes d'une table Mysql
et de stocker le résultat dans une variable php pour l'utiliser dans une boucle for dans le but d'interpréter chaque ligne de la table.
J'ai 5 champs dans ma table et 8 lignes.
Quand je fais 'SELECT COUNT(*) FROM matable' on me renvoie 5 à chaque fois, même si j'ajoute des champs et des lignes dans ma table. Je ne sais pas où est le problème!!
Voilà mon code php.
<html>
  <head>
    <title>Déclarations</title>
  </head>
  
  <body bgcolor=#2F4F4F>
<?php

/**********************************************************************/

$link=mysql_connect("localhost","root",""); //Connexion au serveur
if(!$link)
{
die('Erreur connexion'.mysql_error());
}

$Db_Select=mysql_select_db('gestionirritants',$link);  //Connexion à  la base de données

/*************************************************************************/

$sql='SELECT * FROM declarations ';
$req=mysql_query($sql) or die('SQL ERROR'.$sql.mysql_error());
$sql='SELECT COUNT(*) FROM declarations' ;
$n=mysql_query($sql) or die('SQL ERROR'.$sql.mysql_error()) ; 

?>

<table border="1" align="center" cellspacing="0" cellpadding="0" >
    
	<tr height="30" bgcolor=#E9967A		>
	<td align="center"  valign="center" width="150">
	  <b>Date déclaration</b>
	</td>
	<td align="center"  valign="center" width="150">
	  <b>Titre déclaration</b>
	</td>
	<td align="center"  valign="center" width="150">
	  <b>Type déclaration</b>
	</td>
	<td align="center"  valign="center" width="150">
	  <b>Déscription déclaration</b>
	</td>
	<td align="center"  valign="center" width="150">
	  <b>Valide</b>
	</td>
	<td align="center"  valign="center" width="150">
	  <b>Non Valide</b>
	</td>
  </tr>	
  
   <?php for ($i = 0; $i < $n  ; $i++) {?>
  <tr height="30" bgcolor=#E9967A>
	<td align="center"  valign="center" width="150">
	  <?php 
	    $data=mysql_fetch_array($req);
	   echo $data['DateDec'] ; 
	  ?>
	</td>
	<td align="center"  valign="center" width="150">
	  <?php
	    
	   echo $data['Title'] ; 
	  ?>
	</td>
	<td align="center"  valign="center" width="150">
	  <?php
	  
	   echo $data['Type'] ; 
	  ?>
	</td>
	<td align="center"  valign="center" width="150">
	  <?php
	    
	   echo $data['Description'] ; 
	  ?>
	</td>
	
	<td align="center"  valign="center" width="150">
	  <center><input type="radio" name="check<?php echo $i?>" id="valide<?php echo $i?>" ></center>
	</td>
	<td align="center"  valign="center" width="150">
	  <center><input type="radio" name="check<?php echo $i?>" id="nonvalide<?php echo $i+1?>"  ></center>
	</td>
  </tr> 
  <?php } ?>	

 </table>
  
  <h2></h2>
   <center><input type="submit" name="soumettre2" id="soumettre2" value="Historiser les non valides">   
           <input type="submit" name="soumettre1" id="soumettre1" value="Soumettre les valides">
           </center>
<?php
mysql_free_result ($req);
mysql_close ();
?>

 </body>

</html>

Est-ce que quelqu'un pourrait m'aider?
Merci d'avance ^_^

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Si ton but est de connaitre le nombre de lignes retournées par ta requête.... pas besoin de faire une seconde requête pour ça... mysql_num_rows est là pour ça...

$sql='SELECT * FROM declarations ';
$req=mysql_query($sql) or die('SQL ERROR'.$sql.mysql_error());
$n= mysql_num_rows($req);

1
haikei00X
 
Merci infiniment jordane45 !!
Je pars toute de suite essayer ça!
0