Bouton qui change l'etat d'une place

Imen338 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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