j'ai un formulaire avec une checkbox à cocher sur chaque enregistrement (les enregistrements de ma table sont présentées dans un tableau) (ligne 128)
j'aimerai que lorsque l'utilisateur coche la case, la valeur 1 soit enregistrée dans ma table (sinon 0) et que quand j'ai 1 dans la table, la case apparaissent cochée sur le formulaire.
j'ai 2 problèmes pour faire çà :
1. j'ai réussi à enregistrer 1 lorsque la première case de mon tableau est cochée mais pas pour les autres enregistrements
2. lorsque j'affiche à nouveau mon formulaire, la case n'est pas cochée, alors que la valeur est 1 dans la table
<?php
// On démarre la session AVANT d'écrire du code HTML
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title>Mereva</title>
</head>
<body>
<!--début du bloc page-->
<div id="page">
<!-- En-tête -->
<div class="element_page">
<?php include("entete.php"); ?>
</div>
<!-- Le corps -->
<div class="element_page">
<div id="corps">
<?php include("menus.php"); ?>
<!--Tableau avec le contenu de la table GBD_DAT-->
<div id='element_tableau'>
<div id="tableau">
<?php
//*******************************************************************
//affichage page par page tutoriel Ymox sur le site Zeste de Savoir
//https://zestedesavoir.com/tutoriels/351/paginer-avec-php-et-mysql/
//*******************************************************************
//*Connexion à la base de données
//*OpenCLassroom "Concevez votre site web avec php et MySql"
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
$limite = 10;
$page = (!empty($_GET['page']) ? $_GET['page'] : 1);
$debut = ($page - 1) * $limite;
// Partie "Requête"
/* On calcule donc le numéro du premier enregistrement ; SQL_CALC_FOUND_ROWS compte le nombre d'enregistrements*/
/*sans tenir compte du critère limit*/
$sql = 'SELECT SQL_CALC_FOUND_ROWS * FROM `gbd_dat1` LIMIT :limite OFFSET :debut';
$query = ($sql);
/* On prépare la requête à son exécution. Les marqueurs seront identifiés */
$query = $bdd->prepare($query);
/* On lie ici une valeur à la requête, soit remplacer de manière sûre un marqueur par sa valeur, nécessaire pour que la requête fonctionne. */
$query->bindValue(
'limite', // Le marqueur est nommé « limite »
$limite, // Il doit prendre la valeur de la variable $limite
PDO::PARAM_INT // Cette valeur est de type entier
);
$query->bindValue(
'debut', // Le marqueur est nommé « début »
$debut, // Il doit prendre la valeur de la variable $debut
PDO::PARAM_INT // Cette valeur est de type entier
);
/* Maintenant qu'on a lié la valeur à la requête, on peut l'exécuter pour en récupérer le résultat */
$resultSet = $query->execute();
/* Ici on récupère le nombre d'éléments total. Comme c'est une requête, il ne
* faut pas oublier qu'on ne récupère pas directement le nombre.
* De plus, comme la requête ne contient aucune donnée client pour fonctionner,
* on peut l'exécuter ainsi directement */
$resultFoundRows = $bdd->query('SELECT found_rows()');
/* On doit extraire le nombre du jeu de résultat */
$nombredElementsTotal = $resultFoundRows->fetchColumn();
// début du tableau
echo '<table>'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr class="class01">';
echo '<td class="ID">#ID</td>';
echo '<td class="Patient">Patient</td>';
echo '<td class="Fiche">Fiche</td>';
echo '<td class="Question">Question</td>';
echo '<td class="Description">Description</td>';
echo '<td class="Details">Details</td>';
echo '<td class="Correction">Corrections</td>';
echo '<td class="NR">NR</td>';
echo '<td class="Commentaires">Commentaires</td>';
echo '</tr>';
echo '</table>'."\n";
// Partie "Boucle"
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($element= $query -> fetch())
{
?>
<form id="insertion" name="insertion" action="dms_modification3.php" method="POST">
<input type="hidden" name="limite" value="<?php echo($limite) ;?>">
<table>
<tr class="class02">
<td class="ID"><input class="id" type="text" name="id[]" value="<?php echo $element['id'] ;?>"></td>
<td class="Patient"><input class="pat" type="text" name="pat[]" value="<?php echo $element['pat'] ;?>"></td>
<td class="Fiche"><input class="fic" type="text" name="fic[]" value="<?php echo $element['fic'] ;?>"></td>
<td class="Question"><input class="que" type="text" name="que[]" value="<?php echo $element['que'] ;?>"></td>
<td class="Description"><input class="des" type="text" name="des[]" value="<?php echo $element['des'] ;?>"></td>
<td class="Details"><input class="det" type="text" name="det[]" value="<?php echo $element['det'] ;?>"></td>
<td class="Corrections"><input class="cor" type="text" name="cor[]" value="<?php echo $element['cor'] ;?>"></td>
<td class="NR"><input class="non_rec" type="checkbox" name="non_rec[]" value="<?php echo $element['non_rec'] ;?>" if($element['non_rec']=1){ echo 'checked="checked"';}></td>
<td class="Commentaires"><input class="com" type="text" name="com[]" value="<?php echo $element['com'] ;?>"></td>
</tr>
<?php
}//fin while
?>
</table>
<div>
<input class="modifier" type="submit" value="Modifier">
</div>
</form>
<!--fin du bloc tableau-->
</div>
<!--fin du bloc element_tableau-->
</div>
<?php
$query->closeCursor();
?>
<!--fin du bloc corps-->
</div>
<!--fin du bloc element_page correspondant au CORPS-->
</div>
<div class="element_page">
<!--// Partie "Filtres"-->
<div id='filtres'>
<form action="demande_de_corrections_page_filtres.php" method="get">
<select onselect="this.form.submit()" name="patient" id="patient">
<?php
$sql="SELECT DISTINCT pat, fic FROM gbd_dat1 ORDER BY pat";
$result = $bdd->query($sql);
while ($donnees = $result->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $element['pat'];?>"><?php echo $donnees['pat'];?></option>
<?php
}
?>
</select>
<select onselect="this.form.submit()" name="fiche" id="fiche">
<?php
$sql="SELECT DISTINCT pat, fic FROM gbd_dat1 ORDER BY pat";
$result = $bdd->query($sql);
while ($donnees = $result->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $donnees['fic'];?>"><?php echo $donnees['fic'];?></option>
<?php
}
?>
</select>
<input class="valider" type="submit" value="Valider" />
</form>
</div>
<!--// Partie "Liens"-->
<div id='liens'>
<?php
/* On calcule le nombre de pages */
$nombreDePages = ceil($nombredElementsTotal / $limite);
/* Si on est sur la première page, on n'a pas besoin d'afficher de lien
* vers la précédente. On va donc l'afficher que si on est sur une autre
* page que la première */
if ($page > 1):
?><a href="?page=<?php echo $page - 1; ?>">Précédente</a> - <?php
endif;
/* On va effectuer une boucle autant de fois que l'on a de pages */
for ($i = 1; $i <= $nombreDePages; $i++):
?><a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a> <?php
endfor;
/* Avec le nombre total de pages, on peut aussi masquer le lien
* vers la page suivante quand on est sur la dernière */
if ($page < $nombreDePages):
?>- <a href="?page=<?php echo $page + 1; ?>">Suivante</a><?php
endif;
?>
</div>
</div>
<!-- Le pied de page -->
<div class="element_page">
<div id="pied_de_page"/>
<?php include("pied_de_page.php"); ?>
</div>
</div>
<!--fin du bloc page-->
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!-- jQuery est inclus ! -->
<script>
jQuery(document).ready(function(){
// Du code en jQuery va pouvoir être tapé ici !
console.log("jQuery est prêt !");
});
</script>
</body>
</html>
<?php
//connection au serveur
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
//$nb = count($_POST['id']);
$limite = $_POST['limite'];
//préparation de la requête
$requete = "UPDATE gbd_dat1 SET
pat = :patient,
fic = :fiche,
que = :question,
des = :description,
det = :details,
cor = :correction,
non_rec = :nonrecuperable,
com = :commentaires
WHERE id = :id ";
/* On prépare la requête à son exécution. Les marqueurs seront identifiés */
$result = $bdd->prepare($requete);
//print_r($bdd->errorInfo());
$result->bindParam('id',$id,PDO::PARAM_INT);
$result->bindParam('patient',$patient,PDO::PARAM_STR);
$result->bindParam('fiche',$fiche,PDO::PARAM_STR);
$result->bindParam('question',$question,PDO::PARAM_STR);
$result->bindParam('description',$description,PDO::PARAM_STR);
$result->bindParam('details',$details,PDO::PARAM_STR);
$result->bindParam('correction',$correction,PDO::PARAM_STR);
$result->bindParam('nonrecuperable',$nonrecuperable,PDO::PARAM_INT);
$result->bindParam('commentaires',$commentaires,PDO::PARAM_STR);
for($i=0;$i<$limite;$i++)
{
$patient=$_POST['pat'][$i];
$fiche=$_POST['fic'][$i];
$question=$_POST['que'][$i];
$description=$_POST['des'][$i];
$details=$_POST['det'][$i];
$correction=$_POST['cor'][$i];
//$nonrecuperable=$_POST['non_rec'][$i];
$nonrecuperable = isset($_POST['non_rec'][$i]) ? 1 : 0;
$commentaires=$_POST['com'][$i];
$id=$_POST['id'][$i];
$result->execute();
//var_dump($patient);
}
//affichage des résultats, pour savoir si la modification a marchée:
if($requete)
{
echo("La modification à été correctement effectuée") ;
}
else
{
echo("La modification à échouée") ;
}
?>
Tu peux utiliser une checkbox pour décider quelles lignes modifier, mais pas après ; une checkbox non cochée ne renvoie pas une valeur vide, elle ne renvoie pas de valeur du tout. Tu vas donc avoir des trous.
<?php
//connection au serveur
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
//$nb = count($_POST['id']);
$limite = $_POST['limite'];
//préparation de la requête
$requete = "UPDATE gbd_dat1 SET
pat = :patient,
fic = :fiche,
que = :question,
des = :description,
det = :details,
cor = :correction,
non_rec = :nonrecuperable,
com = :commentaires
WHERE id = :id ";
/* On prépare la requête à son exécution. Les marqueurs seront identifiés */
$result = $bdd->prepare($requete);
//print_r($bdd->errorInfo());
$result->bindParam('id',$id,PDO::PARAM_INT);
$result->bindParam('patient',$patient,PDO::PARAM_STR);
$result->bindParam('fiche',$fiche,PDO::PARAM_STR);
$result->bindParam('question',$question,PDO::PARAM_STR);
$result->bindParam('description',$description,PDO::PARAM_STR);
$result->bindParam('details',$details,PDO::PARAM_STR);
$result->bindParam('correction',$correction,PDO::PARAM_STR);
$result->bindParam('nonrecuperable',$nonrecuperable,PDO::PARAM_INT);
$result->bindParam('commentaires',$commentaires,PDO::PARAM_STR);
for($i=0;$i<$limite;$i++)
{
$patient=$_POST['pat'][$i];
$fiche=$_POST['fic'][$i];
$question=$_POST['que'][$i];
$description=$_POST['des'][$i];
$details=$_POST['det'][$i];
$correction=$_POST['cor'][$i];
//$nonrecuperable=$_POST['non_rec'][$i];
$nonrecuperable = isset($_POST['non_rec'][$i]) ? 1 : 0;
$commentaires=$_POST['com'][$i];
$id=$_POST['id'][$i];
$result->execute();
//var_dump($patient);
}
//affichage des résultats, pour savoir si la modification a marchée:
if($requete)
{
echo("La modification à été correctement effectuée") ;
}
else
{
echo("La modification à échouée") ;
}
?>
La modification que j'ai suggéré ne convient pas effectivement si tu utilise un tableau que tu n'indice pas toi même, je te conseille d'indicer ton tableau html sur l'id de ton objet à modifier, je te donne un petit code pour voir comment utiliser de façon assez pratique les checkbox (je te conseille de tester le code tel quel pour bien voir comment ça marche) :
en mettant dans name "checkbox[idAModifier]", tu devrais arriver à résoudre ton problème assez facilement.
Tu peux même créer une fonction à qui tu passe : le nom de la variable où mettre la valeur, la valeur coché et la valeur non coché qui te sort direct les deux input nécessaires.
merci à tous les 2 pour vos précisions mais je ne comprends absolument rien... et pourtant je vois bien que vous faites de gros effort pour être pédagogique (et je vous en remercie) mais mon niveau est vraiment trop faible
j'ai essayé de suivre vos conseils en repartant d'un exemple simple mais je ne sais pas comment avancer
une table test_checkbox (avec 2 variables de type integer id et non_rec) dans laquelle j'ai inséré 10 enregistrements ayant tous non_rec=0 (case non cochée)
<?php
//connection au serveur
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
$limite = 10;
var_dump($_POST['non_rec']);
//préparation de la requête
$requete = "UPDATE test_checkbox SET
non_rec = :nonrecuperable
WHERE id = :id ";
/* On prépare la requête à son exécution. Les marqueurs seront identifiés */
$result = $bdd->prepare($requete);
//print_r($bdd->errorInfo());
$result->bindParam('id',$id,PDO::PARAM_INT);
$result->bindParam('nonrecuperable',$nonrecuperable,PDO::PARAM_INT);
for($i=0;$i<$limite;$i++)
{
$nonrecuperable = isset($_POST['non_rec'][$i]) ? 0 : 1;
$id=$_POST['id'][$i];
$result->execute();
}
//affichage des résultats, pour savoir si la modification a marchée:
if($requete)
{
echo("La modification à été correctement effectuée") ;
}
else
{
echo("La modification à échouée") ;
}
?>
dois-je faire une page 1 = formulaire avec le code que tu appelles le "code source" et qui envoie les données dans une page 2 pour être updatées dans la base ?
Code source == code HTML généré que tu peux voir en "affichant le source de la page"
Mon exemple part du principe que tu as des données en base, donc pour simuler cela, j'ai simplement mis un tableau. Ensuite la logique reste identique, une boucle sur le résultat et lorsque tu tombes sur la case à cocher tu "écris" dans le code source
oui, c'est sûr que je pars de très loin et je n'ai suivi que quelques tuto OC mais là je ne vois pas du tout où tu veux en venir (mais je reconnais que je suis très lent)
mon problème n'est plus tant d'écrire dans le code source car avec mon code actuel, quand ma valeur en base est 0 j'ai une case non cochée qui s'affiche et quand la valeur dans ma base est 1 j'ai case cochée qui s'affiche
mon problème est d'écrire dans ma base... si je décoche une case cochée je veux que ma valeur passe à 0 et inversement si je coche une case je veux que la valeur en base passe à 1
Tu ne peux pas procéder comme ça, comme je te l'ai déjà dit, une case non cochée ne renverra pas de variable $_POST du tout.
Donc soit tu procèdes par élimination (tu passes en revue dans la base les valeur id non renvoyées dans le POST), soit tu utilises un autre moyen pour transmettre l'info (bouton radio, input hidden...).
j'ai finalement opté pour une la solution que m'a donné Ymox sur le forum Zeste de savoir qui fonctionne très bien.
le code ci-dessous :
dms_modification2.php
<?php
// On démarre la session AVANT d'écrire du code HTML
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title>Mereva</title>
</head>
<body>
<!--début du bloc page-->
<div id="page">
<!-- En-tête -->
<div class="element_page">
<?php include("entete.php"); ?>
</div>
<!-- Le corps -->
<div class="element_page">
<div id="corps">
<?php include("menus.php"); ?>
<!--Tableau avec le contenu de la table GBD_DAT-->
<div id='element_tableau'>
<div id="tableau">
<?php
//*******************************************************************
//affichage page par page tutoriel Ymox sur le site Zeste de Savoir
//https://zestedesavoir.com/tutoriels/351/paginer-avec-php-et-mysql/
//*******************************************************************
//*Connexion à la base de données
//*OpenCLassroom "Concevez votre site web avec php et MySql"
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
$limite = 10;
$page = (!empty($_GET['page']) ? $_GET['page'] : 1);
$debut = ($page - 1) * $limite;
// Partie "Requête"
/* On calcule donc le numéro du premier enregistrement ; SQL_CALC_FOUND_ROWS compte le nombre d'enregistrements*/
/*sans tenir compte du critère limit*/
$sql = 'SELECT SQL_CALC_FOUND_ROWS * FROM `gbd_dat1` LIMIT :limite OFFSET :debut';
$query = ($sql);
/* On prépare la requête à son exécution. Les marqueurs seront identifiés */
$query = $bdd->prepare($query);
/* On lie ici une valeur à la requête, soit remplacer de manière sûre un marqueur par sa valeur, nécessaire pour que la requête fonctionne. */
$query->bindValue(
'limite', // Le marqueur est nommé « limite »
$limite, // Il doit prendre la valeur de la variable $limite
PDO::PARAM_INT // Cette valeur est de type entier
);
$query->bindValue(
'debut', // Le marqueur est nommé « début »
$debut, // Il doit prendre la valeur de la variable $debut
PDO::PARAM_INT // Cette valeur est de type entier
);
/* Maintenant qu'on a lié la valeur à la requête, on peut l'exécuter pour en récupérer le résultat */
$resultSet = $query->execute();
/* Ici on récupère le nombre d'éléments total. Comme c'est une requête, il ne
* faut pas oublier qu'on ne récupère pas directement le nombre.
* De plus, comme la requête ne contient aucune donnée client pour fonctionner,
* on peut l'exécuter ainsi directement */
$resultFoundRows = $bdd->query('SELECT found_rows()');
/* On doit extraire le nombre du jeu de résultat */
$nombredElementsTotal = $resultFoundRows->fetchColumn();
// début du tableau
echo '<table>'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr class="class01">';
echo '<td class="ID">#ID</td>';
echo '<td class="Patient">Patient</td>';
echo '<td class="Fiche">Fiche</td>';
echo '<td class="Question">Question</td>';
echo '<td class="Description">Description</td>';
echo '<td class="Details">Details</td>';
echo '<td class="Correction">Corrections</td>';
echo '<td class="NR">NR</td>';
echo '<td class="Commentaires">Commentaires</td>';
echo '</tr>';
echo '</table>'."\n";
// Partie "Boucle"
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
?><form id="insertion" name="insertion" action="dms_modification3.php" method="POST">
<?php
while($element= $query -> fetch())
{
?>
<input type="hidden" name="limite" value="<?php echo($limite) ;?>">
<input type="hidden" name="lignes[<?php echo $element['id']; ?>][id]" value="<?php echo $element['id'] ;?>">
<input type="hidden" name="lignes[<?php echo $element['id']; ?>][pat]" value="<?php echo $element['pat'] ;?>">
<input type="hidden" name="lignes[<?php echo $element['id']; ?>][fic]" value="<?php echo $element['fic'] ;?>">
<input type="hidden" name="lignes[<?php echo $element['id']; ?>][que]" value="<?php echo $element['que'] ;?>">
<input type="hidden" name="lignes[<?php echo $element['id']; ?>][des]" value="<?php echo $element['des'] ;?>">
<input type="hidden" name="lignes[<?php echo $element['id']; ?>][det]" value="<?php echo $element['det'] ;?>">
<table>
<tr class="class02">
<td class="ID"><?php echo $element['id'] ;?></td>
<td class="Patient"><?php echo $element['pat'] ;?></td>
<td class="Fiche"><?php echo $element['fic'] ;?></td>
<td class="Question"><?php echo $element['que'] ;?></td>
<td class="Description"><?php echo $element['des'] ;?></td>
<td class="Details"><?php echo $element['det'] ;?></td>
<td class="Corrections"><input class="cor" type="text" name="lignes[<?php echo $element['id']; ?>][cor]" value="<?php echo $element['cor'] ;?>"></td>
<td class="NR"><input class="non_rec" type="checkbox" name="lignes[<?php echo $element['id']; ?>][non_rec]"<?php if($element['non_rec'] == 1) echo ' checked="checked"'; ?> /></td>
<td class="Commentaires"><input class="com" type="text" name="lignes[<?php echo $element['id']; ?>][com]" value="<?php echo $element['cor'] ;?>"></td>
</tr>
</table>
<?php
}//fin while
?>
<div id="btn_modifier">
<input class="modifier" type="submit" value="Modifier">
</div>
</form>
<!--fin du bloc tableau-->
</div>
<!--fin du bloc element_tableau-->
</div>
<?php
$query->closeCursor();
?>
<!--fin du bloc corps-->
</div>
<!--fin du bloc element_page correspondant au CORPS-->
</div>
<div class="element_page">
<!--// Partie "Filtres"-->
<div id='filtres'>
<form action="demande_de_corrections_page_filtres.php" method="get">
<select onselect="this.form.submit()" name="patient" id="patient">
<?php
$sql="SELECT DISTINCT pat, fic FROM gbd_dat1 ORDER BY pat";
$result = $bdd->query($sql);
while ($donnees = $result->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $element['pat'];?>"><?php echo $donnees['pat'];?></option>
<?php
}
?>
</select>
<select onselect="this.form.submit()" name="fiche" id="fiche">
<?php
$sql="SELECT DISTINCT pat, fic FROM gbd_dat1 ORDER BY pat";
$result = $bdd->query($sql);
while ($donnees = $result->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $donnees['fic'];?>"><?php echo $donnees['fic'];?></option>
<?php
}
?>
</select>
<input class="valider" type="submit" value="Valider" />
</form>
</div>
<!--// Partie "Liens"-->
<div id='liens'>
<?php
/* On calcule le nombre de pages */
$nombreDePages = ceil($nombredElementsTotal / $limite);
/* Si on est sur la première page, on n'a pas besoin d'afficher de lien
* vers la précédente. On va donc l'afficher que si on est sur une autre
* page que la première */
if ($page > 1):
?><a href="?page=<?php echo $page - 1; ?>">Précédente</a> - <?php
endif;
/* On va effectuer une boucle autant de fois que l'on a de pages */
for ($i = 1; $i <= $nombreDePages; $i++):
?><a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a> <?php
endfor;
/* Avec le nombre total de pages, on peut aussi masquer le lien
* vers la page suivante quand on est sur la dernière */
if ($page < $nombreDePages):
?>- <a href="?page=<?php echo $page + 1; ?>">Suivante</a><?php
endif;
?>
</div>
</div>
<!-- Le pied de page -->
<div class="element_page">
<div id="pied_de_page"/>
<?php include("pied_de_page.php"); ?>
</div>
</div>
<!--fin du bloc page-->
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!-- jQuery est inclus ! -->
<script>
jQuery(document).ready(function(){
// Du code en jQuery va pouvoir être tapé ici !
console.log("jQuery est prêt !");
});
</script>
</body>
</html>
dms_modification3.php
<?php
//connection au serveur
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
//$nb = count($_POST['id']);
$limite = $_POST['limite'];
//var_dump($_POST['non_rec']);
//préparation de la requête
$requete = "UPDATE gbd_dat1 SET
pat = :patient,
fic = :fiche,
que = :question,
des = :description,
det = :details,
cor = :correction,
non_rec = :nonrecuperable,
com = :commentaires
WHERE id = :id ";
/* On prépare la requête à son exécution. Les marqueurs seront identifiés */
$result = $bdd->prepare($requete);
//print_r($bdd->errorInfo());
$result->bindParam('id',$id,PDO::PARAM_INT);
$result->bindParam('patient',$patient,PDO::PARAM_STR);
$result->bindParam('fiche',$fiche,PDO::PARAM_STR);
$result->bindParam('question',$question,PDO::PARAM_STR);
$result->bindParam('description',$description,PDO::PARAM_STR);
$result->bindParam('details',$details,PDO::PARAM_STR);
$result->bindParam('correction',$correction,PDO::PARAM_STR);
$result->bindParam('nonrecuperable',$nonrecuperable,PDO::PARAM_INT);
$result->bindParam('commentaires',$commentaires,PDO::PARAM_STR);
for($i=0;$i<$limite;$i++)
{
foreach($_POST['lignes'] as $id => $donneesLigne)
{
$patient=$donneesLigne['pat'];
$fiche=$donneesLigne['fic'];
$question=$donneesLigne['que'];
$description=$donneesLigne['des'];
$details=isset($donneesLigne['det']) ? $donneesLigne['det'] : '';
$correction=$donneesLigne['cor'];
$nonrecuperable=isset($donneesLigne['non_rec']) ? 1 : 0;
$commentaires=$donneesLigne['com'];
$id=$donneesLigne['id'];
$result->execute();
}
}
//affichage des résultats, pour savoir si la modification a marchée:
if($requete)
{
echo("La modification à été correctement effectuée") ;
}
else
{
echo("La modification à échouée") ;
}
?>
oui, il m'a bien expliqué le code (ici) mais il faut que je retravaille dessus pour le maitriser
Récupérer valeur de checkbox
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
N'oubliez pas d'activer les erreurs PDO.