Requête count

Résolu/Fermé
haikei00X Messages postés 67 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 11 janvier 2016 - 29 janv. 2015 à 12:24
 haikei00X - 30 janv. 2015 à 17:45
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 36879 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 janvier 2023 4 478
29 janv. 2015 à 18:01
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
Merci infiniment jordane45 !!
Je pars toute de suite essayer ça!
0