Bouton qui change l'etat d'une place

Fermé
Imen338 Messages postés 3 Date d'inscription lundi 16 décembre 2019 Statut Membre Dernière intervention 23 décembre 2019 - Modifié le 23 déc. 2019 à 17:44
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 23 déc. 2019 à 19:53
salut tout le mode j'ai utiliser ce code pour faire un bouton qui change l'etat d'une place qui est 'disponible' donc quand je cliquer sur le bouton reserver l'etat sera 'reservé' mais sa ne marche pas je sais pas pourquoi!! aide moi svp

le code html:
----------------------------------------------------------------------------------------------------------------
<body>
<br/>
 <h1>try2 : </h1>
 
 <table>
  <tr>
   <td>id:</td>
   <td></td>
  </tr>
 <?php while($m = $try2->fetch()) { ?>
  <tr>
   <td><?= $m['id'] ?></td>
   <td><?php if($m['etat'] == 'disponible') { ?><a href="try2.php?type=try2&id=<?= $m['id'] ?>">reserver</a><?php } ?></td>
  </tr>
 <?php } ?>
 </table>
   <br/><br/>
</body>
-----------------------------------------------------------------------------------------------------------------
le code php:
----------------------------------------------------------------
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=parc;charset=utf8', 'root', '');

if(isset($_GET['type']) AND $_GET['type'] == 'try2') {
   if(isset($_GET['etat']) AND !empty($_GET['etat'])) {
      $etat =_GET['etat'];
      $req = $bdd->prepare('UPDATE try2 SET etat == reserve WHERE id = ?;');
      $req->execute(array($etat));
   }
}
$try2 = $bdd->query('SELECT * FROM try2 ORDER BY id ASC');

?>

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
23 déc. 2019 à 17:53
Bonjour,

Plusieurs erreurs dans ton code php et dans ta requête SQL
Pour éviter cela, à l'avenir, merci de lire et d'appliquer le contenu de ces deux liens :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Voici ton code corrigé :
<?php
//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion à la bdd
try{
  $bdd = new PDO('mysql:host=127.0.0.1;dbname=parc;charset=utf8', 'root', '');
  // Activation des erreurs PDO
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}


//récupération PROPRE des variables AVANT de les utiliser
// nb: le !empty fait déjà un ISSET ... donc pas besoin de tester les deux !
$type = !empty($_GET['type']) ? $_GET['type']: NULL;
$etat = !empty($_GET['etat']) ? $_GET['etat']: NULL;
$id = !empty($_GET['id']) ? $_GET['id']: NULL;

if($type=='try2' && $etat && $id){
  $sql = "UPDATE try2 SET etat = ? WHERE id = ?";
  $datas = array($etat,$id);
  try{
    $req = $bdd->prepare($sql);
    $req->execute($datas);
  }catch(Exception $e){
    echo "Erreur " . $e->getMessage();
  }
}

$sql = "SELECT * FROM try2 ORDER BY id ASC";
try{
  $req = $bdd->query($sql);
}catch(Exception $e){
  echo "Erreur " . $e->getMessage();
}

0
Imen338 Messages postés 3 Date d'inscription lundi 16 décembre 2019 Statut Membre Dernière intervention 23 décembre 2019
23 déc. 2019 à 18:12
de la base j'ai utilise ce code :
est ca fonctionne correctement mais j'ais pas compris ton code...
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=parc;charset=utf8', 'root', '');

if(isset($_GET['type']) AND $_GET['type'] == 'try') {
if(isset($_GET['confirme']) AND !empty($_GET['confirme'])) {
$confirme = (int) $_GET['confirme'];
$req = $bdd->prepare('UPDATE try SET confirme = 1 WHERE id = ?');
$req->execute(array($confirme));
}
if(isset($_GET['supprime']) AND !empty($_GET['supprime'])) {
$supprime = (int) $_GET['supprime'];
$req = $bdd->prepare('DELETE FROM try WHERE id = ?');
$req->execute(array($supprime));
}
}
?>

<body>
<br/>
<h1>liste des client : </h1>
<table>
<tr>
<td>id:</td>
<td>pseudo:</td>
<td></td>
<td></td>
</tr>
<?php while($m = $try->fetch()) { ?>
<tr>
<td><?= $m['id'] ?></td>
<td><?= $m['pseudo'] ?></td>
<td><?php if($m['confirme'] == 0) { ?> - <a href="try.php?type=try&confirme=<?= $m['id'] ?>">Confirmer</a><?php } ?></td>
<td><a href="try.php?type=try&supprime=<?= $m['id'] ?>">Supprimer</a></td>
</tr>
<?php } ?>
</table>
</body>
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
23 déc. 2019 à 19:53
Si tu as pris la peine d'aller lire les liens que je t'ai donné je pense qu'une grande partie des explications y sont
0