Boutons précédent - suivant

Fermé
jbubu Messages postés 6 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 20 décembre 2007 - 20 déc. 2007 à 12:15
 Alain42 - 21 déc. 2007 à 09:38
Bonjour,
j'ai une liste d'especes triées en différentes sousfamilles.
Le code suivant fonctionne très bien, il me range chacune des especes dans sa sousfamille correspondante, le tout par ordre alphabétique.

$reponse = mysql_query("SELECT famille sousfamille espece page FROM table WHERE famille='bidule' GROUP BY sousfamille ASC, espece ASC");
while($aff = mysql_fetch_array($reponse))
{
if(strcmp($aff['sousfamille'], $sousfamille))
{
?>
<?php echo "$aff[sousfamille]"; ?> :<br>
<?php
$sousfamille = $aff[sousfamille];
}
?>
<a href="<?php echo $aff['page']; ?>"><?php echo "$aff[espece]"; ?><br></a>
<?php
}

Maintenant, je souhaiterais créer des boutons "précédent"-"suivant"...
Avec le bouton Suivant, je voudrais passer à l'espece suivante (...) appartenant à la même sousfamille.
Et quand je suis à la dernière espece de la sousfamille, je souhaiterais passer à la première espece de la sousfamille suivante.
Je pensais utiliser la requete précédente, mais pas moyen....

Quelqu'un pourrait m'aider SVP !! Merci d'avance!!
Bubu, très limité en php !

4 réponses

Bonjour,

si je peux me permettre, qq rectifs sur ton code:

<?php
$reponse = mysql_query("SELECT famille sousfamille espece page FROM table WHERE famille='bidule' GROUP BY sousfamille ASC, espece ASC");
while($aff = mysql_fetch_array($reponse)){
	if(strcmp($aff['sousfamille'], $sousfamille)){
		echo $aff[sousfamille].":<br>"; 
		$sousfamille = $aff[sousfamille];
	}
?>
<a href="<?php echo $aff['page']; ?>"><?php echo $aff[espece]; ?><br></a>
<?php
} 


tu peux peut être jouer sur la variable $sousfamille avec le bouton precedent suivant ??, puisque apparement c'est la dessus que porte ta comparaison à l'affichage.

une piste:

qd tu lis dans la BD, tu empliles les valeurs de sous famille dans un array et par le bouton suivant tu passes à la valeur suivante de l'array => $sousfamille

je n'ai pas testé regardes ça:

<?php
$reponse = mysql_query("SELECT famille sousfamille espece page FROM table WHERE famille='bidule' GROUP BY sousfamille ASC, espece ASC");
$array_sousFamille=array();
if(isset($_GET['num_a_lire'])){
	$num_a_lire=0;
}else{
	$num_a_lire=$_GET['num_a_lire'];// on recupere le num poste par le bouton Suivant precedent
}
$num=0;//init
while($aff = mysql_fetch_array($reponse)){
	$array_sousFamille[]=$reponse['sousfamille'];// on empile
	if(strcmp($aff['sousfamille'], $array_sousFamille[$num_a_lire])){
		echo $aff['sousfamille'].":<br>"; 
		//$sousfamille = $aff[sousfamille];
		$num_en_cours=$num;
		$num++;
	}
?>
<a href="<?php echo $aff['page']; ?>"><?php echo $aff[espece]; ?><br></a>
<?php
} 
//et tes boutons sous forme de liens
?>
<a href="ta_page.php?num_a_lire=<?php echo $num_en_cours-1; ?>" >Precedent</a><br>
<a href="ta_page.php?num_a_lire=<?php echo $num_en_cours+1; ?>" >Suivant</a><br>



si tu ne veux pas sous forme de lien il faudra passer la valeur num_en_cours en champ caché et récupérer en $_POST
3
jbubu Messages postés 6 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 20 décembre 2007
20 déc. 2007 à 15:16
Merci Alain pour ton aide!
Bien sûr que tu peux te permettre, je suis archi débutant, et je recherche de l'aide !! J'ai donc tenu compte de tes rectificatifs !!

Pour mon problème de boutons, ça ne marche pas, mais je pense que tu n'es pas pas loin d'avoir trouvé, enfin je crois...
J'ai comme l'impression qu'un numéro, 10 par exemple, est attribué à la page en cours, et les liens pour les pages précédente et suivante cherchent à mener vers les pages 9 et 11 respectivement! Et ce sont les pages php de ces espèces que je cherche à atteindre directement !
J'explicite un peu plus ce que je cherche à faire, si ca peut aider!
En gros, quand je suis sur la page de "espece-1b" (espece-1b.php), le bouton suivant irait directement sur la page de "espece-2a" (espece-2a.php):

SOUSFAMMILLE-1:
espece-1a
espece-1b
SOUSFAMMILLE-2 :
espece-2a
espece-2b
espece-2c
espece-2d
SOUSFAMMILLE-3 :
espece-3a

Merci encore
0
jbubu Messages postés 6 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 20 décembre 2007
20 déc. 2007 à 17:59
Que veux-tu dire par "si tu ne veux pas sous forme de lien il faudra passer la valeur num_en_cours en champ caché et récupérer en $_POST" ??? Je ne comprend pas....
0
Depuis une page, on peut appeler le serveur pour recharger une autre page de plusieurs façons:

- un lien (<a href=".........)
dans ce cas on peut passer des parametres dans l'url et les recuperer par $_GET

- un bouton dans un formulaire
dans ce cas les parametres sont envoyés avec les autres donnees du formulaire qui contient ce bouton
si on utilises la method POST (<form name="..." method="post" ....)
on recuperes par $_POST

mais il faut dans ce cas mettre le numero en champ caché
<input type="idden" name="numero_en_cours" value="<?php echo $numero_en_cours; ?>">

Mais je te conseille en un premier temps de faire avec les liens c'est plus simple, et ensuite tu verra pour la methode par le bouton

Dans la piste que je t'ai donné, je suis parti sur la sous famille suivante, hors toi tu veux l'espèce suivante ou precedente il me semble.

Une précision aussi ce ne sont pas des pages especes-1.php etc.. que tu dois avoir mais une page qui affichera des valeurs différentes par lecture dans la BDD

En gros:
premier affichage =>> première espèce (par la condition WHERE de la requette mysql)

suivant affichage =>> deuxième espèce (en modifiant la requette)
suivant affichage =>>troisieme espèce (en modifiant la requette)
precedent affichage =>> deuxième espèce (en modifiant la requette)
0