Bonjour,je début avec json_encode.
J'obtient ca donc tous marche je récupère les deux post pseudo et après json_encode 'l'id plus la réponse '.
{"11":"Oui","12":"Non","13":"Non","14":"Non","15":"Non","16":"Non","17":"Non","18":"Non","19":"Non","20":"Non","21":"Non","22":"Non","23":"Non","24":"Non","25":"Non","26":"Non"}.
Jusqu'à la sa va par contre lord de l'envoi en base de donner ils ce passe rien.

    $post = $_POST;
    $erreur = false;

    unset($_SESSION['flash']);
    $_SESSION['flash'] = [];

    foreach ($post as $key => $item) {
      switch ($key) {
        case 'idItem':
          if (!isset($post['idItem']) and empty($post['idItem'])){
          Session::getInstance()->setFlash('erreur', "Attention l'id n'exite pas en post");
          $erreur = true;
        }
        break;
        case 'pseudo':
          if (!isset($_POST['pseudo'])and empty($_POST['pseudo']) and strlen($post['pseudo']) < 3 and strlen($post['pseudo']) < 30) {
            $existeMembre = $this->db->query("SELECT * FROM guilde WHERE pseudo = :pseudo", [':pseudo' => $post['pseudo']])->fetch();
            if (!Tools::displayIfPropertyExist($existeMembre, 'id')) {
              Session::getInstance()->setFlash('erreur', 'Attention le pseudo ne fait pas parti de la liste de guilds ou le champs et vide');
              $erreur = true;
            }
          }
          break;
        case 'prixB':
          if (!isset($post['prixB']) and !empty($post['prixB']) and in_array($post['prixB'], array($post['prixB']))){
            Session::getInstance()->setFlash('erreur', "Attention le prix n'a pas était renseigner ou mettre Oui");
            $erreur = true;
          }
          break;
      }
    }
    if (!$erreur) {

      $prixB=[];
      foreach ($post['idItem'] as $key=>$item) {
        if($post['prixB'][$key]){
          $prixB[$item]=$post['prixB'][$key];
        }
      }
      $prix=json_encode($prixB);

      $tableau = array(
        ':pseudo' => $post['pseudo'],
        ':prixB' => $prix
      );

      $venteTrial = $this->db->query("INSERT  INTO achatTrial SET pseudo=:pseudo, prixB=:prixB ", $tableau);

        if($venteTrial) {
          Session::getInstance()->setFlash('success', "Les récompenses trial on était enregistrer");
        }else {
          Session::getInstance()->setFlash('erreur', "Les récompenses trial n'on pas était enregistrer");
        }
    }

L'erreur viens surement de la requête mais je vois pas ou. en base de donner c'est bien en utf8 .

Si quelqu'un a une idée

Merci de votre aide

1 réponse


SirPixel
Auteur
Réponse acceptée

bonjour, merci mais j'ai trouver j'avai pas mis auto incremente sur l'id en base de donner. bonsoir