Boutons de deplacements sous PHP mysql

Bonsoir mes amis;
En premier merci à tout qui m'ont aidé sur les questions précédentes:)

je veux réaliser une page qui affiche le contenu de ma base par personne dans des zones textes afin de pouvoir les modifier, et j'aimerais passer d'une personne à l'autre avec des boutons de type (premier - precedent - suivant-dernier), j'ai essayé ca mais ca pas marché et je sais pas où ce trouve l'erreur:

voici mon fichier index:

<html>
<head>
</head>
<body>
<?php
include("bd1conn.php");
$req="select * from test";
$result=mysql_query($req);
$ligne=mysql_fetch_array($result);

$compt="select count(*) ne from test";
$ecompt=mysql_query($compt);
$n=mysql_fetch_array($ecompt);

$nb=0;
$nbe=$_POST["t2"];//nombre d'enregistrements
$nbd=$nbe-1;// le moins 1 pour inclure l'enregistrement num 0 dans la requete limit du bouton dernier
//Bouton suivant
if(isset($_POST["b3"]) && $_POST["b3"]==">" && $_POST["t1"]<($nbe) ){
$nb=$_POST[t1]+1;
$req="select * from test limit $nb,1";
$result=mysql_query($req);
$ligne=mysql_fetch_array($result);
}
else

if(isset($_POST["b2"]) && $_POST["b2"]=="<" && $_POST["t1"]>0 ){
//bouton precedent
$nb=$_POST[t1]-1;
$req="select * from test limit $nb,1";
$result=mysql_query($req);
$ligne=mysql_fetch_array($result);
}
if(isset($_POST["b1"]) && $_POST["b1"]=="<<"){
//bouton premier
$req="select * from test limit 0,1 ";
$result=mysql_query($req);
$ligne=mysql_fetch_array($result);
}
if(isset($_POST["b4"]) && $_POST["b4"]==">>"){
//bouton dernier

$req="select * from test limit $nbd,1";
$result=mysql_query($req);
$ligne=mysql_fetch_array($result);
}
if(isset($_POST["b5"]) && $_POST["b5"]=="modifier"){
//bouton dernier
$v1=$_POST["t1"];
$v2=$_POST["t2"];
$v3=$_POST["t3"];
$v4=$_POST["t4"];
$v5=$_POST["t5"];

$req="UPDATE test set nom='$v2',prenom='$v3',ville='$v4',catg='$v5' where mat=$v1";
$result=mysql_query($req);

if($result==true){
echo "Bien";}
else
echo "!!!!!!!!!!!!!!!!!!!";
}

?>

<form name="f1" method="POST" action="ajouter1.php">
Mat: <input type="text" name="t1" value="<?php echo $ligne["mat"]; ?>"><br><br>
Nom: <input type="text" name="t2" value="<?php echo $ligne["nom"]; ?>"><br><br>
Prenom: <input type="text" name="t3" value="<?php echo $ligne["prenom"]; ?>"><br><br>
Ville: <input type="text" name="t4" value="<?php echo $ligne["ville"]; ?>"><br><br>
Ctg: <input type="text" name="t5" value="<?php echo $ligne["catg"]; ?>"><br><br>
<input type="submit" name="b1" value="<<">
<input type="submit" name="b2" value="<">
<input type="submit" name="b3" value=">">
<input type="submit" name="b4" value=">>">
<input type="submit" name="b5" value="modifier">
<input type="text" name="t1" value="<?php echo $nb; ?>" >
<input type="hidden" name="t2" value="<?php echo $n["ne"]; ?>" >
</form>

</body>
</html>

___________________________________________________________

2 réponses

  1. Merci beaucoup alain vous êtes super gentil j'ai trouvé la bonne formule grâce à vous :)
    2
    1. je t'ai pas mal modifié ton code, nom de variables plus parlants que b1, 2, 3 t1 ,2 etc..

      on part du principe que l'enr affiché à un numéro (en champ caché) donc on fixe la le début limit à partir de ce numéro soit plus 1 soit moins 1

      Je n'ai pas testé il peut subsister des bugs

      <html>
      <head>
      </head>
      <body>
      <?php
      include("bd1conn.php");
      /*
      cette partie ne sert à rien, de plus pour lire tous les enr il faut fait une boucle while($ligne=mysql_fetch_array($result))
      $req="select * from test";
      $result=mysql_query($req);
      $ligne=mysql_fetch_array($result);
      */
      $compt="SELECT COUNT(mat) as ne FROM test"; //les fonctions MYSQL en majsucules c'est plus facile à lire
      $req_compt=mysql_query($compt);
      $n=mysql_fetch_array($ecompt);
      $nbe=$n['ne'];
      //init 
      $num_enr=0;
      
      if(isset($_POST["suivant"] || isset($_POST["precedent"] || isset($_POST["premier"] || isset($_POST["dernier"]){
      	//recup du champ cache numero de l'enr en cours d'affichage
      	$num_enr=$_POST['num_enr'];
      
      }else{
      	// sinon on va afficher le premier
      	$num_enr=0;
      	
      }
      
      
      //Bouton suivant
      if(isset($_POST["suivant"]) && $_POST["suivant"]==">"  ){
      	$debut=$num_enr+1; //debut de LIMIT
      	if($debut >= $nbe-1) $debut=$nbe-1;
      	$req="SELECT * FROM test LIMIT $debut,1";
      	$result=mysql_query($req);
      	$ligne=mysql_fetch_array($result);
      }
      if(isset($_POST["precedent"]) && $_POST["precedent"]=="<"  ){
      	//bouton precedent
      	$debut=$num_enr-1; //debut de LIMIT
      	if($debut <=$ 0) $debut=0;
      	$req="select * from test limit $nb,1";
      	$result=mysql_query($req);
      	$ligne=mysql_fetch_array($result);
      }
      if(isset($_POST["premier"]) && $_POST["premier"]=="<<"){
      	//bouton premier
      	$req="select * from test limit 0,1 ";
      	$result=mysql_query($req);
      	$ligne=mysql_fetch_array($result);
      }
      if(isset($_POST["dernier"]) && $_POST["dernier"]==">>"){
      	//bouton dernier
      	$debut = $nbe-1
      	$req="select * from test limit $debut,1";
      	$result=mysql_query($req);
      	$ligne=mysql_fetch_array($result);
      }
      if(isset($_POST["modifier"]) && $_POST["modifier"]=="modifier"){
      	//bouton modifier
      	$mat=$_POST["mat"];
      	$nom=$_POST["nom"];
      	$prenom=$_POST["prenom"];
      	$ville=$_POST["ville"];
      	$catg=$_POST["catg"];
      
      	$req="UPDATE test set nom='$nom',prenom='$prenom',ville='ville',catg='$ctg5' where mat=$mat";
      	$result=mysql_query($req);
      
      if($result==true){
      echo "Bien";}
      else
      echo "!!!!!!!!!!!!!!!!!!!";
      }
      
      ?>
      
      <form name="f1" method="POST" action="ajouter1.php">
      Mat: <input type="text" name="mat" value="<?php echo $ligne["mat"]; ?>" /><br><br>
      Nom: <input type="text" name="nom" value="<?php echo $ligne["nom"]; ?>" /><br><br>
      Prenom: <input type="text" name="prenom" value="<?php echo $ligne["prenom"]; ?>" /><br><br>
      Ville: <input type="text" name="ville" value="<?php echo $ligne["ville"]; ?>" /><br><br>
      Ctg: <input type="text" name="catg" value="<?php echo $ligne["catg"]; ?>" /><br><br>
      <input type="submit" name="premier" value="<<" />
      <input type="submit" name="precedent" value="<" />
      <input type="submit" name="suivant" value=">" />
      <input type="submit" name="dernier" value=">>" />
      <input type="submit" name="modifier" value="modifier" /><br><br>
      Nbr enr total:<input type="text" name="nbe" value="<?php echo $nbe; ?>" readonly />
      
      <input type="hidden" name="num_enr" value="<?php echo $num_enr; ?>" />
      </form>
      
      </body>
      </html> 
      1