Boutons de deplacements sous PHP mysql

ayy Messages postés 54 Statut Membre -  
ayy Messages postés 54 Statut Membre -
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. ayy Messages postés 54 Statut Membre 2
     
    Merci beaucoup alain vous êtes super gentil j'ai trouvé la bonne formule grâce à vous :)
    2
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    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