Boutons de deplacements sous PHP mysql

ayy Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -  
ayy Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -
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>

___________________________________________________________


A voir également:

2 réponses

ayy Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci beaucoup alain vous êtes super gentil j'ai trouvé la bonne formule grâce à vous :)
2
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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