PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Forum Général PHP » comment ajouter un nouveau produit dans une BDD » 03-06-2015 06:24:38

ann10
Réponses : 1

Bonjour,
j'ai un site sur lequel je souhaite faire une page "ajout d'un produit" à l'aide d'un formulaire contenant :
une lise déroulante de salle
une date d'arrivée
une date de départ
une liste déroulante de promo
un prix
bouton "ajouter" qui lorsque l'on clique dessus envoie les nouvelles données en BDD et indique un message "votre nouveau produit est crée" en restant sur la page

j'ai réussi à faire le formulaire avec toutes mes listes déroulantes mais quand je clique sur le bouton "Ajouter"; il ne se passe rien, aucun envoi dans la BDD et aucun message n'apparait, le navigateur me renvoie une page blanche lors du clic sur le bouton ajouter.

Quelqu'un peut-il m'aider ?

voici le code, je sais qu'il est un peu long mais je ne vois pas comment faire autrement :


<?php
require_once("inc/init.inc.php");

error_reporting(E_ALL);

// vérification des droits à accéder à cette page
if (!utilisateurAdmin()) {
    header("location:index.php");
    exit();
}


   
// prépa affichage des salles existantes
  if(!isset($_GET['action'])) {
    $requete = executeRequete("SELECT id_salle, ville, adresse, cp, titre, capacite, categorie FROM salle");
   
    $salles_existantes ='';
    while($affichage = $requete->fetch_assoc()) {
    $salles_existantes .= '<option value="' . $affichage['id_salle'] . '">' . $affichage['id_salle'] . ' - ' . $affichage['ville'] . ' - ' . $affichage['adresse'] . ' - ' . $affichage['cp'] .  ' - ' . $affichage['titre'] . ' - ' . $affichage['capacite'] . ' - ' . $affichage['categorie'] . ' - ' . '</option>';
   
   
    }
  }
 

  // prépa affichage des codes promos existants
 
  if(!isset($_GET['action'])) {
    $requete = executeRequete ("SELECT id_promo, code_promo, reduction FROM promotion");
   
    $promos_existantes = '';
    while($affichage = $requete->fetch_assoc()) {
      $promos_existantes .= '<option value="' . $affichage['id_promo'] . '">' . $affichage['id_promo'] . ' - code : ' . $affichage['code_promo'] . ' - reduction : ' . $affichage['reduction'] . '</option>';
    }
    $promos_existantes .= '<option value=""> pas de promotion </option>';
  }  
 
  // dans le cas où on ajoute on demande la vérification des champs avec POST
 
  if(isset($_POST['ajouter'])) {
 
    if (empty($_POST['date_arrivee'])) {
      $msg .='<div class="erreur"> Veuillez entrer une date d\'arrivée </div>';
    }  elseif(!empty($_POST['date_arrivee']) && strtotime(convertirDate($_POST['date_arrivee'])) <= time()) {
      $msg.= '<div class="erreur"> Veuillez entrer une date d\'arrivée supérieure à la date d\'aujourd\'hui </div>';
    }
    if (empty($_POST['date_depart'])) {
      $msg .='<div class="erreur"> Veuillez entrer une date de départ </div>';
    }  elseif (!empty($_POST['date_depart']) && strtotime(convertirDate($_POST['date_depart']))< strotime(convertirDate($_POST['date_arrivee']))) {
      $msg.= '<div class="erreur"> Veuillez entrer une date de départ supérieure ou égale à la date d\'arrivée </div>';
    }
    if (empty($_POST['prix'])) {
      $msg.= '<div class="erreur"> Veuillez entrer un prix</div>'; 
    }
 
 
  // envoie du produit dans la BDD
 
    if(empty($msg)) {
      $date_arrivee = convertirDate($_POST['date_arrivee']);
      $date_depart = convertirDate($_POST['date_depart']);
       

      if (!isset($_GET['action'])) {         
        executeRequete("INSERT INTO produit (date_arrivee, date_depart, id_salle, id_promo, prix, etat) VALUES ('$date_arrivee','$date_depart','$_POST[id_salle]','$_POST[id_promo]','$_POST[prix]',0)");
        $msg .= '<div class="validation"> Le nouveau produit est créé !</div>';
       
        } else {
          executeRequete("REPLACE INTO produit (id_produit, date_arrivee, date_depart, id_salle, id_promo, prix, etat) VALUES ('$_GET[id_produit]',$date_arrivee','$date_depart','$_POST[id_salle]','$_POST[id_promo]','$_POST[prix]','$_POST[etat]')");
          $msg .= '<div class="validation"> Le produit est modifié !</div>';
        }
    }
 

// remplissage des champs du formulaire
  extract($_POST);
 
}

else { // fin du if isset ajouter  
    $date_arrivee = '';
    $date_depart = '';
    $prix = '';
    $etat= 0;

}


//cas de la modification d'un produit  
  if (isset($_GET['action']) && $_GET['action'] == 'modifier_produit' ) {
  $titre_menu = 'Modifier';
  $requete = executeRequete("SELECT id_produit, date_arrivee, date_depart, id_salle, id_promo, prix, etat FROM produit WHERE id_produit = '$_GET[id_produit]'");
  $affichage = $requete->fetch_assoc();

  extract($affichage);
  $date_arrivee = convertirDateEurope($date_arrivee);
  $date_depart = convertirDateEurope($date_depart);

  // remplissage du formulaire correspondant à salle du produit modifié
 
  $requete = executeRequete("SELECT id_salle, ville, adresse, cp, titre, capacite, categorie FROM salle");
  $salles_existantes = '';
 
  while ($affichage = $requete->fetch_assoc()) {
    if ($affichage['id_salle'] ==$id_salle) {
      $selected = ($affichage['id_salle'] == $id_salle)? ' selected="selected"' : '';
    }
   
    $salles_existantes .= '<option value="' . $affichage['id_salle'] . '" ' . $selected . '>' . $affichage['id_salle'] . ' - ' . $affichage['titre'] . ' - '. $affichage['adresse'] . ' - ' . $affichage['ville'] . '- '. $affichage['capacite'] . '-'. $affiche['categorie'] . '-' . '</option>';
 
  }

// remplissage du formulaire avec promo produit modifié
  $requete = executeRequete("SELECT id_promo, code_promo, reduction FROM promotion");
 
  $promos_existantes = '';
  while ($affichage = $requete->fetch_assoc()) {
    if ($affichage['id_promo'] == $id_promo) {
      $selected = ($affichage['id_promo'] == $id_promo)? ' selected="selected"' : '';
    }
   
    $promos_existantes .= '<option value="' . $affichage['id_promo'] . '" ' . $selected . '>'.$affichage['id_promo'] . ' - code : ' . $affichage['code_promo'] . ' -  reduction : '. $affichage['reduction'] . '</option>';
 
  }
  if ($id_promo == 0) {
 
    $selected = 'selected';
    } else {
   
      $selected = '';
    }
 
  $promos_existantes .= '<option value=""' . $selected . '>pas de promotion </option>';
 
  } else {
    $titre_menu = 'Ajouter';
 
  }

// affichage commun
require_once("inc/header.inc.php");
require_once("inc/menu.inc.php");
?>
     
       
      <h1>Gestion des produits</h1>
      <div class="liens">
        <p><a href="gestion_produits.php?action=affichage">AFFICHAGE DES PRODUITS</a></p>
      </div>
      <div class="liens">
        <p><a href="gestion_produits_ajouter.php">AJOUTER UN PRODUIT</a></p>
      </div>
        <?php echo $msg; ?>
       
       
      <div id="gestionproduits">
     
     
     
        <form method="post" enctype="multipart/form-data">
        <h2>AJOUTER UN PRODUIT</h2>
        <p><label for="salle"> Choisir une salle parmi les salles existantes </label>
        <select id="salle" name="id-salle">
        <?php echo $salles_existantes; ?>
        </select><br>
        <label for="date_arrivee">Date d'arrivée</label>
        <input id="date_arrivee" type="date" name="date_arrivee" placeholder="jj-mm-aaaa" value="<?php echo $date_arrivee; ?>"><br>
        <label for="date_depart">Date de départ</label>
        <input id="date_depart" type="date" name="date_depart" placeholder="jj-mm-aaaa" value="<?php echo $date_depart; ?>"><br>
        <label for="prix">Prix</label>
        <input id="prix" type="text" name="prix" value="<?php echo $prix; ?>"><br>
        <label for="id_promo">Attribution d'une remise parmi les codes promos existants</label>
          <select id="id_promo" name="id_promo">
          <?php echo $promos_existantes; ?>
          </select>
        <input type="hidden" name="etat" value="<?php echo $etat; ?>"><br>
      <!-- <button> <input id="ajouter" type="submit" value="<?php echo htmlspecialchars($titre_menu); ?>" name="ajouter" /></button></p> -->
        <button id="ajouter" type="submit" value="ok" name="ajouter"><?php echo htmlspecialchars($titre_menu); ?></button></p>
       
        </form>
     
      </div>
     
     
 

Pied de page des forums

Propulsé par FluxBB