<?php
/* On considère que la connexion est faite */
/* Création de la requête */
$sql = "SELECT DISTINCT(tournoi) ORDER BY tournoi ASC";
/* exécution de la requête */
$resultat = mysql_query($sql);
/* On prépare et on alimente la liste déroulante */
?>
<form action="" method="post" id="tournois_form">
<select name="tournoi" id="tournoi" onchange="document.forms['tournois_form'].submit();">
<?php
while($ligne = mysql_fetch_assoc($resultat))
{
?>
<option value="<?php echo($ligne['tournoi']); ?>"><?php echo($ligne['tournoi']); ?></option>
<?php
}
?>
</select>
</form>
Dans un second temps, en début de page, on va ajouter un élément de récupération, lis bien les commentaires, ils sont importants:
<?php
/* ~~~~~~~~~ Récupération au rechargement ~~~~~~~~~ */
$tournoi = isset($_POST['tournoi']) ? $_POST['tournoi'] : null;
/* Au moment de créer la requête pour l'affichage du tableau, on teste si tournoi existe pour rajouter une clause WHERE */
if(isset($tournoi))
{
$requete .= " WHERE tournoi = '". $tournoi ."'";
}
?>
Intègre ça dans ton code et fais la même chose pour l'année./* Création des des requêtes */
$sql_nom = "SELECT DISTINCT(nom) from tableaux ORDER BY nom ASC";
$sql_annee = "SELECT DISTINCT(annee) from tableaux ORDER BY annee ASC";
$sql_type = "SELECT DISTINCT(type) from tableaux ORDER BY type ASC";
$sql_sexe = "SELECT DISTINCT(sexe) from tableaux ORDER BY sexe ASC";
$sql_vainqueur = "SELECT DISTINCT(vainqueur) from tableaux ORDER BY vainqueur ASC";
/* exécution des requêtes */
$resultat_nom = mysql_query($sql_nom);
$resultat_annee = mysql_query($sql_annee);
$resultat_type = mysql_query($sql_type);
$resultat_sexe = mysql_query($sql_sexe);
$resultat_vainqueur = mysql_query($sql_vainqueur);
/* On prépare et on alimente les listes déroulantes */
?>
<form action="" method="post" id="tournois_form">
<input type="submit" value="Envoyer" name="B1">
<select name="tournoi" id="tournoi">
<option value="">Tournoi ?</option>
<?
while($ligne_nom = mysql_fetch_assoc($resultat_nom))
{
?>
<option value="<?php echo($ligne_nom ['nom']); ?>"><?php echo($ligne_nom['nom']); ?></option>
<?
}
?>
</select>
<select name="annee" id="annee">
<option value="">Année ?</option>
<?
while($ligne_annee = mysql_fetch_assoc($resultat_annee))
{
?>
<option value="<?php echo($ligne_annee['annee']); ?>"><?php echo($ligne_annee['annee']); ?></option>
<?
}
?>
</select>
<select name="type" id="type">
<option value="">Type ?</option>
<?
while($ligne_type = mysql_fetch_assoc($resultat_type))
{
?>
<option value="<?php echo($ligne_type['type']); ?>"><?php echo($ligne_type['type']); ?></option>
<?
}
?>
</select>
<select name="sexe" id="sexe">
<option value="">Sexe ?</option>
<?
while($ligne_sexe = mysql_fetch_assoc($resultat_sexe))
{
?>
<option value="<?php echo($ligne_sexe['sexe']); ?>"><?php echo($ligne_sexe['sexe']); ?></option>
<?
}
?>
</select>
<select name="vainqueur" id="vainqueur">
<option value="">Vainqueur ?</option>
<?
while($ligne_vainqueur = mysql_fetch_assoc($resultat_vainqueur))
{
?>
<option value="<?php echo($ligne_vainqueur['vainqueur']); ?>"><?php echo($ligne_vainqueur['vainqueur']); ?></option>
<?
}
?>
</select>
</form>
<?
/* ~~~~~~~~~ Récupération au rechargement ~~~~~~~~~ */
$nom = isset($_POST['tournoi']) ? $_POST['tournoi'] : null;
$annee = isset($_POST['annee']) ? $_POST['annee'] : null;
$sexe = isset($_POST['sexe']) ? $_POST['sexe'] : null;
$type = isset($_POST['type']) ? $_POST['type'] : null;
$vainqueur = isset($_POST['vainqueur']) ? $_POST['vainqueur'] : null;
/* Au moment de créer la requête pour l'affichage du tableau, on teste si tournoi existe pour rajouter une clause WHERE */
$sql = 'SELECT * FROM tableaux WHERE annee<>""';
if(isset($nom))
{
$sql .= " and nom = '". $nom ."'";
}
if(isset($annee))
{
$sql .= " and annee = '". $annee ."'";
}
if(isset($type))
{
$sql .= " and type = '". $type ."'";
}
if(isset($sexe))
{
$sql .= " and sexe = '". $sexe ."'";
}
if(isset($vainqueur))
{
$sql .= " and vainqueur = '". $vainqueur ."'";
}
$requete = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$total = mysql_num_rows($requete);
// on fait une boucle qui va faire un tour pour chaque enregistrements
while($data = mysql_fetch_array($requete))
// si on a récupéré un résultat on l'affiche.
if($total) {
// debut du tableau
echo '<table bgcolor="#FFFFFF">'."\n";
echo '<tr>';
echo '<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Annee</b></font></td>';
echo '<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Tournoi</b></font></td>';
echo '<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Type</b></font></td>';
echo '<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Catégorie</b></font></td>';
echo '<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Vainqueur</b></font></td>';
echo '<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Finaliste</b></font></td>';
echo '<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Score</b></font></td>';
echo '</tr>'."\n";
// on fait une boucle qui va faire un tour pour chaque enregistrements
while($data = mysql_fetch_array($requete))
{
echo '<tr>';
echo '<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000">'.$data['Annee'].'</font></td>';
echo '<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000"><a href='.$data['url'].' target="_blank">'.$data['Nom'].'</a></font></td>';
echo '<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000">'.$data['Type'].'</font></td>';
echo '<td bgcolor="#FFFFFF"><p align="center"><font face="Verdana" size="1" color="#008000">'.$data['Sexe'].'</font></td>';
echo '<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000">'.$data['Vainqueur'].'</font></td>';
echo '<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000">'.$data['Finaliste'].'</font></td>';
echo '<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000">'.$data['Score'].'</font></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on ferme la connexion à mysql
mysql_close();
?>
J'ai également un second petit pb : même lorsque mes sélections se déroulent correctement, je n'affiche jamais le premier enregistrement correspondant à ma requête.<?php
/* ~~~~~~~~~ Récupération au rechargement ~~~~~~~~~ */
$nom = isset($_POST['tournoi']) ? $_POST['tournoi'] : null;
$annee = isset($_POST['annee']) ? $_POST['annee'] : null;
$sexe = isset($_POST['sexe']) ? $_POST['sexe'] : null;
$type = isset($_POST['type']) ? $_POST['type'] : null;
$vainqueur = isset($_POST['vainqueur']) ? $_POST['vainqueur'] : null;
/* Création des des requêtes */
$sql_nom = "SELECT DISTINCT(nom) from tableaux ORDER BY nom ASC";
$sql_annee = "SELECT DISTINCT(annee) from tableaux ORDER BY annee ASC";
$sql_type = "SELECT DISTINCT(type) from tableaux ORDER BY type ASC";
$sql_sexe = "SELECT DISTINCT(sexe) from tableaux ORDER BY sexe ASC";
$sql_vainqueur = "SELECT DISTINCT(vainqueur) from tableaux ORDER BY vainqueur ASC";
/* exécution des requêtes */
$resultat_nom = mysql_query($sql_nom);
$resultat_annee = mysql_query($sql_annee);
$resultat_type = mysql_query($sql_type);
$resultat_sexe = mysql_query($sql_sexe);
$resultat_vainqueur = mysql_query($sql_vainqueur);
/* On prépare et on alimente les listes déroulantes */
?>
<form action="" method="post" id="tournois_form">
<input type="submit" value="Envoyer" name="B1">
<select name="tournoi" id="tournoi">
<option value="">Tournoi ?</option>
<?
while($ligne_nom = mysql_fetch_assoc($resultat_nom))
{
$selected1 = (isset($nom) && $nom == $ligne_nom['nom']) ? " selected=\"selected\"" : null;
?>
<option value="<?php echo($ligne_nom ['nom']); ?>"<?php echo($selected1); ?>><?php echo($ligne_nom['nom']); ?></option>
<?
}
?>
</select>
<select name="annee" id="annee">
<option value="">Année ?</option>
<?
while($ligne_annee = mysql_fetch_assoc($resultat_annee))
{
$selected2 = (isset($annee) && $annee == $ligne_annee['annee']) ? " selected=\"selected\"" : null;
?>
<option value="<?php echo($ligne_annee['annee']); ?>"<?php echo($selected2); ?>><?php echo($ligne_annee['annee']); ?></option>
<?
}
?>
</select>
<select name="type" id="type">
<option value="">Type ?</option>
<?
while($ligne_type = mysql_fetch_assoc($resultat_type))
{
$selected3 = (isset($type) && $type == $ligne_type['type']) ? " selected=\"selected\"" : null;
?>
<option value="<?php echo($ligne_type['type']); ?>"<?php echo($selected3); ?>><?php echo($ligne_type['type']); ?></option>
<?
}
?>
</select>
<select name="sexe" id="sexe">
<option value="">Sexe ?</option>
<?
while($ligne_sexe = mysql_fetch_assoc($resultat_sexe))
{
$selected4 = (isset($sexe) && $sexe == $ligne_sexe['sexe']) ? " selected=\"selected\"" : null;
?>
<option value="<?php echo($ligne_sexe['sexe']); ?>"<?php echo($selected4 ); ?>><?php echo($ligne_sexe['sexe']); ?></option>
<?
}
?>
</select>
<select name="vainqueur" id="vainqueur">
<option value="">Vainqueur ?</option>
<?
while($ligne_vainqueur = mysql_fetch_assoc($resultat_vainqueur))
{
$selected5 = (isset($vainqueur) && $vainqueur == $ligne_vainqueur['vainqueur']) ? " selected=\"selected\"" : null;
?>
<option value="<?php echo($ligne_vainqueur['vainqueur']); ?>"<?php echo($selected5); ?>><?php echo($ligne_vainqueur['vainqueur']); ?></option>
<?
}
?>
</select>
</form>
<?
/* Au moment de créer la requête pour l'affichage du tableau, on teste si tournoi existe pour rajouter une clause WHERE */
$sql = "SELECT * FROM tableaux";
$clauses = array();
if(isset($nom))
{
$clauses[] = "nom = '". $nom ."'";
}
if(isset($annee))
{
$clauses[] = "annee = '". $annee ."'";
}
if(isset($type))
{
$clauses[] = "type = '". $type ."'";
}
if(isset($sexe))
{
$clauses[] = "sexe = '". $sexe ."'";
}
if(isset($vainqueur))
{
$clauses[] = "vainqueur = '". $vainqueur ."'";
}
if(count($clauses >= 1))
{
$tri = implode(" AND ", $clauses);
$sql .= " WHERE ". $tri;
}
$requete = mysql_query($sql) or die("Erreur SQL !<br>". $sql ."<br>". mysql_error());
$total = mysql_num_rows($requete);
// si on a récupéré un résultat on l'affiche.
if($total > 0)
{
// debut du tableau
?>
<table bgcolor="#FFFFFF">
<tr>
<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Annee</b></font></td>
<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Tournoi</b></font></td>
<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Type</b></font></td>
<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Catégorie</b></font></td>
<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Vainqueur</b></font></td>
<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Finaliste</b></font></td>
<td bgcolor="#FFAD29"><p align="center"><font face="Verdana" size="1" color="#FFFFFF"><b>Score</b></font></td>
</tr>
<?php
// on fait une boucle qui va faire un tour pour chaque enregistrements
while($data = mysql_fetch_array($requete))
{
?>
<tr>
<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000"><?php echo($data['Annee']); ?></font></td>
<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000"><a href="<?php echo($data['url']); ?>" target="_blank"><?php echo($data['Nom']); ?></a></font></td>
<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000"><?php echo($data['Type']); ?></font></td>
<td bgcolor="#FFFFFF"><p align="center"><font face="Verdana" size="1" color="#008000"><?php echo($data['Sexe']); ?></font></td>
<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000"><?php echo($data['Vainqueur']); ?></font></td>
<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000"><?php echo($data['Finaliste']); ?></font></td>
<td bgcolor="#FFFFFF"><font face="Verdana" size="1" color="#008000"><?php echo($data['Score']); ?></font></td>
</tr>
<?php
}
?>
</table>
<?php
// fin du tableau.
}
else
{
?>
<p>Pas d'enregistrements dans la catégorie sélectionnée...</p>
<?php
}
// on ferme la connexion à mysql
mysql_close();
?>
if ($nom<>'') { $clauses[] = "nom = '". $nom ."'";}
au lieu de if(isset($nom))
{
$clauses[] = "nom = '". $nom ."'";
}
Merci à tous, je tiens ma requête et je vais passer au fignolage<input tye="button" name="bouton_refaire" value="Re-initialiser" onclick="window.location: <?php echo($_SERVER['PHP_SELF']); ?>" />Code : Tout sélectionner
<input type="button" name="bouton_refaire" value="Re-initialiser" onclick="window.location:/index.php" style="font-family: Verdana; font-size: 8 pt; color: #000080" />
<input tye="button" name="bouton_refaire" value="Re-initialiser" onclick="javascript:window.location:' <?php echo($_SERVER['PHP_SELF']); ?>'" /><input type="button" name="bouton_refaire" value="Re-initialiser" onclick="window.location: ./index.php" style="font-family: Verdana; font-size: 8 pt; color: #000080" />
on laisse un espace après le "location:" et on fait précéder le "/" juse avant index d'un point qui indique le répertoire courant.