Parcourir les enregistrements d'une table par un bouton next
Résolu/Fermé
arij223
Messages postés
14
Date d'inscription
mercredi 15 avril 2015
Statut
Membre
Dernière intervention
24 avril 2015
-
15 avril 2015 à 13:50
arij223 Messages postés 14 Date d'inscription mercredi 15 avril 2015 Statut Membre Dernière intervention 24 avril 2015 - 17 avril 2015 à 12:58
arij223 Messages postés 14 Date d'inscription mercredi 15 avril 2015 Statut Membre Dernière intervention 24 avril 2015 - 17 avril 2015 à 12:58
A voir également:
- Parcourir les enregistrements d'une table par un bouton next
- Table ascii - Guide
- Table des matières word - Guide
- Comment enregistrer une video youtube - Guide
- Réinitialiser chromecast sans bouton - Guide
- Table des annexes word ✓ - Forum Word
2 réponses
ludo1325
Messages postés
149
Date d'inscription
samedi 27 juin 2009
Statut
Membre
Dernière intervention
23 juin 2015
33
15 avril 2015 à 19:49
15 avril 2015 à 19:49
Salut,
Donc résumons la chose,
tu affiche un formulaire avec dans tes input les valeurs d'une ligne retourné par une requête SQL ?
Tu voudrais ensuite, quand on clique sur un bouton next, affiche le même formulaire avec dedans, les valeurs de la ligne suivante ?
Donc résumons la chose,
tu affiche un formulaire avec dans tes input les valeurs d'une ligne retourné par une requête SQL ?
Tu voudrais ensuite, quand on clique sur un bouton next, affiche le même formulaire avec dedans, les valeurs de la ligne suivante ?
arij223
Messages postés
14
Date d'inscription
mercredi 15 avril 2015
Statut
Membre
Dernière intervention
24 avril 2015
34
17 avril 2015 à 12:58
17 avril 2015 à 12:58
Merci à ludo1325 pour sa réponse ! ça marche à présent voici le code :
<?php
$driver = 'mysql';
$host = 'localhost';
$dbname = 'nombasededonne';
$login = 'root';
$passwd = '';
$dsn = $driver.':host='.$host.';dbname='.$dbname;
$bdd = new PDO($dsn, $login, $passwd);
$bdd->exec("SET CHARACTER SET utf8");
if (isset($_POST['submit']) && $_POST['submit'] == "Modifier"){
$id = htmlentities(trim($_POST['id']));
$num_serie=htmlentities(trim($_POST['num_serie']));
$nom_materiel=htmlentities(trim($_POST['nom_materiel']));
$designation=htmlentities(trim($_POST['designation']));
$bdd->query("UPDATE matable SET num_serie = '".$num_serie."', nom_materiel = '".$nom_materiel."', designation = '".$designation."' WHERE id = '".$id."'");
}
$messagesParPage = 1;
$retour_total = $bdd->query('SELECT COUNT(*) AS total FROM matable')->fetch()[0];
$nombreDePages = ceil($retour_total/$messagesParPage);
if(isset($_GET['page'])) {
$pageActuelle = intval($_GET['page']);
if($pageActuelle > $nombreDePages){
$pageActuelle = $nombreDePages;
}
}else{
$pageActuelle = 1;
}
$premiereEntree=($pageActuelle-1)*$messagesParPage;
$donnees = $bdd->query('SELECT * FROM matable ORDER BY num_serie DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'')->fetch(PDO::FETCH_ASSOC);
?>
<form method="POST" action="votrepagedetraitement.php?<?php if(isset($_GET['page'])) echo 'page='.$_GET['page']; ?>" name="f1">
numero de serie :</font> <input type="text" name="mum_serie" value="<?php echo $donnees['num_serie']; ?>">
Materiel : <input type="text" name="nom_materiel" value="<?php echo $donnees['nom_materiel']; ?>"> </br>
Designation: <input type="text" name="designation" value="<?php echo $donnees['designation']; ?>">
</br><input type="submit" value="Modifier" name="submit">
<input type="hidden" name="id" value="<?php echo $donnees['id']; ?>">
</form>
<?php
echo '<p align="center">Page : ';
for($i = 1; $i <= $nombreDePages; $i++)
{
if($i == $pageActuelle)
{
if($pageActuelle > 1)
{
echo '<a href="votrepagedetraitement.php?page='.($pageActuelle - 1).'">Précédent</a> ';
}
if($pageActuelle < $nombreDePages)
{
echo '<a href="votrepagedetraitement.php?page='.($pageActuelle + 1).'"> Suivant</a>';
}
}
}
echo '</p>';
?>
Sujet résolu ! :D
<?php
$driver = 'mysql';
$host = 'localhost';
$dbname = 'nombasededonne';
$login = 'root';
$passwd = '';
$dsn = $driver.':host='.$host.';dbname='.$dbname;
$bdd = new PDO($dsn, $login, $passwd);
$bdd->exec("SET CHARACTER SET utf8");
if (isset($_POST['submit']) && $_POST['submit'] == "Modifier"){
$id = htmlentities(trim($_POST['id']));
$num_serie=htmlentities(trim($_POST['num_serie']));
$nom_materiel=htmlentities(trim($_POST['nom_materiel']));
$designation=htmlentities(trim($_POST['designation']));
$bdd->query("UPDATE matable SET num_serie = '".$num_serie."', nom_materiel = '".$nom_materiel."', designation = '".$designation."' WHERE id = '".$id."'");
}
$messagesParPage = 1;
$retour_total = $bdd->query('SELECT COUNT(*) AS total FROM matable')->fetch()[0];
$nombreDePages = ceil($retour_total/$messagesParPage);
if(isset($_GET['page'])) {
$pageActuelle = intval($_GET['page']);
if($pageActuelle > $nombreDePages){
$pageActuelle = $nombreDePages;
}
}else{
$pageActuelle = 1;
}
$premiereEntree=($pageActuelle-1)*$messagesParPage;
$donnees = $bdd->query('SELECT * FROM matable ORDER BY num_serie DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'')->fetch(PDO::FETCH_ASSOC);
?>
<form method="POST" action="votrepagedetraitement.php?<?php if(isset($_GET['page'])) echo 'page='.$_GET['page']; ?>" name="f1">
numero de serie :</font> <input type="text" name="mum_serie" value="<?php echo $donnees['num_serie']; ?>">
Materiel : <input type="text" name="nom_materiel" value="<?php echo $donnees['nom_materiel']; ?>"> </br>
Designation: <input type="text" name="designation" value="<?php echo $donnees['designation']; ?>">
</br><input type="submit" value="Modifier" name="submit">
<input type="hidden" name="id" value="<?php echo $donnees['id']; ?>">
</form>
<?php
echo '<p align="center">Page : ';
for($i = 1; $i <= $nombreDePages; $i++)
{
if($i == $pageActuelle)
{
if($pageActuelle > 1)
{
echo '<a href="votrepagedetraitement.php?page='.($pageActuelle - 1).'">Précédent</a> ';
}
if($pageActuelle < $nombreDePages)
{
echo '<a href="votrepagedetraitement.php?page='.($pageActuelle + 1).'"> Suivant</a>';
}
}
}
echo '</p>';
?>
Sujet résolu ! :D
16 avril 2015 à 00:21
16 avril 2015 à 09:40
Par exemple imaginons que t'as table contiennent des pages, donc les champs récupérés en base seront : id, name, content et la table s'appelle pages
quand tu arrive la premiere fois sur ta page, le paramètre est inexistant, donc on va récupérer le premier enregistrement.
$sql = 'SELECT * FROM pages LIMIT 0,1';
Quand tu clique sur next ton url devient,
http://monsite.web.com/page.php?p=1 || p=1 étant le paramètre en question
Alors la requête devient, $sql = 'SELECT * FROM pages LIMIT 1,1'
Ensuite encore une fois sur next, et la requête : $sql = 'SELECT * FROM pages LIMIT 2,1'
Tu changes le premier paramètre du limit, selon ce qui est envoyé dans la variable $_GET['p'] et les valeurs dans le input vont donc changer car ce sera l'entrée suivante en base qui sera récupérée !
Je sais pas si c'est super clair, dit moi pour la suite !
16 avril 2015 à 12:41
le seul petit souci c'est que prenons l'exemple que je me trouve sur la page 3 et que je modifie des infos sur cette page , ensuite quand il m'arrive de cliquer sur le bouton modifier , la page revient automatiquement sur la toute première et ne reste pas sur la 3 à moins que je ne décide de passer à une autre ,c'est ce qui m'agace un peu :/ aurais-tu une idée de comment faire ?
Merci mille fois pour l'intérêt que tu porte à mon poste :)
16 avril 2015 à 13:47
La méthode la plus simple, et qu'une fois le traitement de tes données terminé, il te suffit de rediriger sur l'url ou tu était, donc tu continue à faire passer le paramètre $_GET['p'] partout.
Pour ce faire, une fois le traitement de tes données terminé, tu rajoute dans ton code un : header('location: index.php?p='.$_GET['p']); et ça redirigera sur le bon lien.
Pas de soucis ! :)
Modifié par arij223 le 16/04/2015 à 15:46
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('test');
$messagesParPage=1;
if (isset($_POST['submit']) && $_POST['submit'] == "Modifier")
{
$num_serie=htmlentities(trim($_POST['num_serie']));
$nom_materiel=htmlentities(trim($_POST['nom_materiel']));
$designation=htmlentities(trim($_POST['designation']));
$sql1 = "UPDATE materiel SET num_serie ='$num_serie', nom_materiel ='$nom_materiel', designation ='$designation' where num_serie='$num_serie'";
$req=mysql_query($sql1) or die(mysql_error());
}
$retour_total=mysql_query('SELECT COUNT(*) AS total FROM matable');
$donnees_total=mysql_fetch_assoc($retour_total);
$total=$donnees_total['total'];
$nombreDePages=ceil($total/$messagesParPage);
if(isset($_GET['page']))
{
$pageActuelle=intval($_GET['page']);
if($pageActuelle>$nombreDePages)
{
$pageActuelle=$nombreDePages;
}
}
else
{
$pageActuelle=1; // La page actuelle est la n°1
}
$premiereEntree=($pageActuelle-1)*$messagesParPage;
// On calcul la première entrée à lire
$retour_messages=mysql_query('SELECT * FROM matable ORDER BY num_serie ASC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
while($donnees=mysql_fetch_assoc($retour_messages))
{
?>
<form method="POST" action="modif_traitement.php" name="f1">
numero de serie :</font> <input type="text" name="mum_serie" value="<?php echo $donnees['num_serie']; ?>">
Materiel : <input type="text" name="nom_materiel" value="<?php echo $donnees['nom_materiel']; ?>"> </br>
Designation: <input type="text" name="designation" value="<?php echo $donnees['designation']; ?>">
</br><input type="submit" value="Modifier" name="submit">
<input type="submit" name="submit" value="Suivant"/>
</form>
<?php
}
echo '<p align="center">Page : ';
for($i=1; $i<=$nombreDePages; $i++)
{
if($i==$pageActuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' <a href="modif_traitement.php?page='.$i.'">'.$i.'</a> ';
}
}
echo '</p>';
?>
j'ai cherché un peu j'ai pu trouver cet exemple sur internet , sauf le truc qui fait que quand je modifie, ça ne reste pas sur la même page mais ça reviens à la toute première , Encore merci