Bonjour à tous et à toutes !
Apres avoir utilisé avec succès le tutorial sur l'affichage page par page, j'essaie de créer une page récuperant la liste des disciplines d'une table pour m'en servir comme liste déroulante renvoyant sur ma "page par page" mais j'aurai besoin d'un dernier coup de main pour terminer le site...
<select>
<?
$db = mysql_connect('****', '****', '******');
mysql_select_db('****',$db);
$sql = "SELECT DISTINCT sport FROM sports WHERE departement='Haute-Corse' ORDER BY sport ASC";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($sport = mysql_fetch_assoc($req))
{
echo '<option value="discipline2b.php?sport='.$sport['sport'].'">'.$sport['sport'].'</option>';
}
// on ferme la connexion à mysql
mysql_close();
?>
</select>
<input type="submit" value="ok">
je souhaiterai que cette page avec une liste déroulante renvoie sur une page où j'utilise (avec succès ! merci

) l'affichage page par page :
<?php
/**
Commençons par fixer les paramètres :
*/
/* Paramètres de connexion */
$admin_bd = "****"; /* Le pseudonyme permettant à l'administrateur de se connecter */
$mdp_bd = "******"; /* Le mot d passe de l'administrateur de base de données */
$serveur_bd = "****"; /* L'adresse du serveur de base de données */
$base_bd = "****"; /* La base de données où sont enregistrées les informations */
/* Paramètres de pagination */
$nb_nouv_par_page = 10; /* Nombre de nouvelles qui seront affichées sur chaque page */
$url = "./discipline2b.php?page=";
/* On détermine quelle est la page qui est actuellement affichée */
$page_en_cours = isset($_GET['page']) ? $_GET['page'] : 0;
$page_affichee = ($page_en_cours + 1);
/* Connexion au serveur de base de données */
$connexion = mysql_pconnect($serveur_bd, $admin_bd, $mdp_bd);
mysql_select_db($base_bd);
/* Requête pour compter les nouvelles présentes dans notre base de données */
$sql_nb = "SELECT COUNT(*) FROM `sports` WHERE sport='".$sport."' AND departement='Haute-Corse'";
/* Exécution de la requête et récupération du résultat */
$resultat_1 = mysql_query($sql_nb);
$nb_nouvelles = mysql_result($resultat_1, 0);
/* Calcul du nombre total de pages : on arrondit à l'entier supérieur (ceil() ) */
$nb_pages = ceil($nb_nouvelles / $nb_nouv_par_page);
/**
Nous disposons maintenant de suffisament d'éléments pour créer notre barre de navigation.
Première chose à vérifier : avons-nous plusieurs pages, et au moins une ?
*/
if($nb_pages > 0)
{
/* On définit une variable qui contiendra les données de navigation */
$barre_nav = "";
/* Nous avons au moins une page : avons nous besoin d'une barre de navigation ? */
if($nb_pages > 1)
{
/**
Nous avons plusieurs pages: nous allons afficher successivement les liens vers
les pages précédentes s'il y en a, la page en cours et les liens vers les pages
suivantes. Nous aurons une barre sous la forme : 1 | 2 | 3 etc.. en liens clicables
sauf pour la page en cours dont nous mettrons le chiffre en gras
*/
if($page_en_cours > 0)
{
for($i = 0; $i < $page_en_cours; $i++)
{
$p = $i + 1;
$barre_nav .= "<a href=\"". $url . $i ."\" title=\"page ". $p ."\">". $p ."</a> | ";
}
}
/**
On affiche la page en cours : notez le (+ 1) : pour les calculs, nous partons d'une
page 0 mais pour l'internaute, il est préférable de commencer à la page 1, donc on incrémente
*/
$barre_nav .= "<strong>". $page_affichee ."</strong>";
/* Enfin on affiche (s'il y a lieu) les liens vers les pages suivantes */
if(($page_affichee) < $nb_pages)
{
/* Il reste encore d'autres pages à afficher */
$nb_suivantes = $nb_pages - ($page_affichee);
for($j = ($page_affichee); $j < $nb_pages; $j++)
{
$p = $j + 1;
$barre_nav .= " | <a href=\"". $url . $j ."\" title=\"page ". $p ."\">". $p ."</a>";
}
}
/* On peut définir en plus la situation dans une autre variable à afficher ailleurs */
$page_affichee = "Page ". $page_affichee ." sur ". $nb_pages ."";
}
else
{
/* Nous n'avons qu'une seule page, on peut se contenter d'afficher juste page 1/1 */
$barre_nav .= "page 1/1";
}
/**
On peut maintenant afficher notre page. On va commencer par récupérer les informations
On doit définir à partir de quelle nouvelle on doit récupérer les données dans la clause LIMIT.
*/
$debut = $page_en_cours * $nb_nouv_par_page;
$sql_n = "SELECT denomination, nom, adresse FROM sports WHERE sport='".$sport."' AND departement='Haute-Corse' LIMIT ". $debut .", ". $nb_nouv_par_page .";";
$nouvelles = mysql_query($sql_n);
?>
<?php echo($page_affichee); ?>
<?php
while($nouv = mysql_fetch_assoc($nouvelles))
{
?>
<p>
<?php echo($nouv['denomination']); ?>
<br/>
<?php echo($nouv['nom']); ?></h3>
<br/>
<?php echo(nl2br($nouv['adresse'])); ?>
<?php
}
/* on libère la mémoire */
mysql_free_result($resultat_1);
mysql_free_result($nouvelles);
/* On peut fermer la connexion à MySQL */
mysql_close($connexion);
/* On affiche maintenant la barre de navigation */
?>
<p>
<?php echo($barre_nav); ?>
<?php
}
else
{
/**
Nous n'avons aucune page, on peut alors afficher un message autre
sans devoir nous préoccuper de la navigation
*/
?>
Aucune nouvelle n'a encore été publiée à ce jour
<hr />
<?php
}
?>
je n'arrive pas à combiner les deux pages liste déroulante PUIS affichage page par page en récuperant la variable "discipline". Je pense que l'erreur est forcement là :
{
echo '<option value="discipline2b.php?sport='.$sport['sport'].'">'.$sport['sport'].'</option>';
}
et au niveau du submit puisque ma liste déroulante ne renvoie sur aucune page.
N'oubliez pas qu'il n'y a pas de questions stupides... merci d'avance
