recherche de non réinscrits

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : recherche de non réinscrits

Re: recherche de non réinscrits

par xTG » 13 févr. 2012, 10:05

Tu dois surtout avoir une belle erreur PHP.
Tu incrémentes sur une variable de type array pour ensuite la réutiliser en tant qu'array ?????

Ton problème peut se résoudre avec du SQL et les ensembles.
Il faut sélectionner les inscriptions de cette année, puis les inscriptions qui ne sont pas de cette année (avec un DISTINCT sur le nom, prénom pour avoir qu'une ligne, ou bien plus compliqué prendre le dernier n-uplet en date) puis de soustraire les deux ensembles.

Années N-X inscrits - Année N inscrit = Année N non inscrits

http://sqlpro.developpez.com/cours/sqlaz/ensembles/

recherche de non réinscrits

par foulart » 12 févr. 2012, 16:33

Bonjour,

Je gère une Db de membres inscrits à un club de sport avec PHP.
les records sont du type un record par membre par année (ce qui n'est pas le plus efficace je le concède) :
nom - prenom - année-2
nom - prenom - année-1
nom - prenom - année en cours

je cherche à faire une liste des membres non réinscits pour l'année en cours par rapport à l'année précédente.
au départ d'un "select * WHERE annee=date('Y') or annee = date('Y')-1 order by nom,prenom,annee" qui me donne
nom1 prenom1 année-1
nom1 prenom 1 année
nom 2 preniom 2 année
etc..

ensuite j'ai :
$current_row = mysql_fetch_array($result); //read $current_row
echo "Non réinscrits par rapport à l'année précédente";
while ($current_row = mysql_fetch_array($result)) { //read row
if ($current_row['annee']== date('Y')){ //ne fait rien car reinscrit
$next_row = $current_row +1; //$next_row become current_row on next step
}
if ($next_row['annee']== date('Y')-1 && $next_row['nom']==$current_row['nom'] && $next_row['prenom'] == $current_row['prenom']){ //compare it
echo "<tr>";
echo "<td> <font size='2'>" . $next_row['nom'] . "</td>";
echo "<td> <font size='2'>" . $next_row['prenom'] . "</td>";
echo "<td> <font size='2'>" . $next_row['annee'] . "</td>";
echo "</tr>";
}
}
....
J'ai toujours 0 records listés ?

Qui pourrait m'aider à réaliser ce report./

D'avance un grand merci
Pierre