Voila je voudrais que si mon input est cocher, en actualisant la page qu'il le reste donc voisi mon code
il doit y avoir un problème :/ si quelqu'un pourrait m'aider

<?php
$bdd = new PDO('mysql:host=********;dbname=**********','************','***************', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$statue2 = $bdd->query('SELECT * FROM statuewebtv');
$donnees = $statue2->fetch();
?>
 
<form method="post" action="page1.php">
 
<?php echo $donnees['tv1']; ?>
 
    <?php
      if ($_POST['tv1'] == on)
        {$statue = 1;}
          else
        {$statue = 0;}
    ?>
    
  <input type="checkbox" name="tv1" id="1" <?php if($donnees['tv1'] == 1) {echo 'checked';} ?>/>
    <label for="1">
      <div style="background:<?php if($statue == 1) {echo '#84bbdb';} ?>;">
        <b>Captation 1</b>
      </div>
    </label>
  
  <input type="submit" value="valider" name="Valider">
         
        <?php
 
        if($statue == 1)
           {
            echo $bdd->query('UPDATE statuewebtv SET TV1="1" WHERE 1');
           }
         
        else
           {
            echo $bdd->query('UPDATE statuewebtv SET TV1="0" WHERE 1');
           }
 
        ?>
 
  
  <input type="submit" value="valider" name="Valider">
  
</form>

9 réponses


Bonjour ...

Ci-dessous mes remarques en commentaire...

<?php
$bdd = new PDO('mysql:host=********;dbname=**********','************','***************', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$statue2 = $bdd->query('SELECT * FROM statuewebtv'); 
$donnees = $statue->fetch();  //ça sort d'où $statue ?
?>

<form method="post" action="page1.php">

<?php echo $donnees['tv1']; ?> //que se passet-il si tv1 n'existe pas dans $donnees?

    <?php
      if ($_POST['tv1'] == on)  //Que se passe-t-il si tv1 n'a pas été posté?
        {$statue = 1;}
          else
        {$statue = 0;}
    ?>

  <input type="checkbox" name="tv1" id="1" <?php if($donnees['tv1'] == 1) {echo 'checked';} ?>/>
    <label for="1">
      <div style="background:<?php if($statue == 1) {echo '#84bbdb';} ?>;">
        <b>Captation 1</b>
      </div>
    </label>

  <input type="submit" value="valider" name="Valider">

        <?php

/*
*   ICI on met à jour systèmatiquement la base même si rien n'a été posté?
*
*/

        if($statue == 1)
           {
            echo $bdd->query('UPDATE statuewebtv SET TV1="1" WHERE 1'); /
           }

        else
           {
            echo $bdd->query('UPDATE statuewebtv SET TV1="0" WHERE 1');
           }

        ?>

  <input type="submit" value="valider" name="Valider">

</form>

Attention à l'orthographe svp ... :(

Donc je devrais rajouter quoi ? :/ j'ai un gros mal de cranne la...

Tu devrais relire calmement ton code (demain si t'es HS aujourd'hui ) pour corriger les erreurs bloquantes. (là ton script plante je pense).

Euh non il plante pas mais comme tu me la précisé il se met à jour systématiquement je verrais demain..
N’hésite pas a repasser demain si tu veux bien :)

Franchement... J'aime beaucoup le titre de ce post ! "Basse de données", ça me rend bien sceptique... comme une fosse !
Bon courage.

Bon je n'arriver pas a dormir alors je me suis remis a coder ^^
Voici mon nouveau code il fonctionne correctement et mon input reste bien sauvegarder dans ma basse de donner.

J'aimerais quand même que quelqu'un, ou même toi "antho07" pourrais me dire si éventuellement j'ai fais une erreur quelque part ou si je pourrais améliorer ce code :)

<?php
$bdd = new PDO('mysql:host=********;dbname=**********','************','***************', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$reponse = $bdd->query('SELECT tv1 FROM statuewebtv');
$donnees = $reponse->fetch();
?>

<?php  
  if(isset($_POST['statuetv1_update']))
    {
     if ($_POST['checkbox1'] == on)
      {
      $bdd->query('UPDATE statuewebtv SET tv1="1" WHERE 1');
      }         
     else
      {
       $bdd->query('UPDATE statuewebtv SET tv1="0" WHERE 1');
      }
    }
?>
<form method="post" action="page1.php">
  <?php echo $donnees['tv1']; ?>

    <input type="checkbox" name="checkbox1" id="1" <?php if($donnees['tv1'] == 1) {echo 'checked';} ?>/>
      <label for="1">
        <div style="background:<?php if($donnees['tv1'] == 1) {echo '#84bbdb';} ?>;"> 
          <b>STATUE DU LIVE</b>
        </div>
      </label>

    <input type="submit" value="valider" name="statuetv1_update" >
</form> 

Ta requête d'update pour moi à un problème au niveau de la clause WHERE
(et pour info c'est base de données et non basse de données)

<?php
$bdd = new PDO('mysql:host=********;dbname=**********','************','***************', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$reponse = $bdd->query('SELECT tv1 FROM statuewebtv');
$donnees = $reponse->fetch();
?>

<?php  
  if($_POST)
    {
     if ($_POST['checkbox1'] == 'on')
      {
      $bdd->query('UPDATE statuewebtv SET tv1="1" WHERE 1'); // Ton where 1 correpond a quoi ?
      }         
     else
      {
       $bdd->query('UPDATE statuewebtv SET tv1="0" WHERE 1'); // Ton where 1 correpond a quoi ?
      }
    }
?>
<form method="post" action="page1.php">
  <?php echo $donnees['tv1']; ?>

    <!-- place un input hidden pour être sur que checkbox1 ai une valeur -->
    <input type="hidden" name="checkbox1" id="_1" <?php if($donnees['tv1'] == 1) {echo 'checked';} ?>/>
    <input type="checkbox" name="checkbox1" id="1" <?php if($donnees['tv1'] == 1) {echo 'checked';} ?>/>
      <label for="1">
        <div style="background:<?php if($donnees['tv1'] == 1) {echo '#84bbdb';} ?>;"> 
          <b>STATUE DU LIVE</b>
        </div>
      </label>

    <input type="submit" value="valider" name="statuetv1_update" >
</form>

Le where n'est en effet pas utile.
Il semble qu'il a copié collé la requête executé par phpmyadmin lorsqu'on utilise l'interface.