mon select ne rentre pas dans la base

Eléphanteau du PHP | 18 Messages

15 janv. 2016, 09:21

bonjour , j'ai crée un formulaire , tout rentre sauf la valeur de mon select , si quelqu'un pouvait m'aider merci :cry:

index.php
<?php
require('Formulaire.class.php');
$ville = 'paris';
$aujoudhui = date("Y-m-d");
$demain = date('Y-m-d', strtotime('+1 day'));
$apres_demain = date('Y-m-d', strtotime('+2 day'));
$periodes = array('matin','après-midi','nuit'); 
$resumes = array('nuageux','pluvieux', 'ensoleillé','brumeux');
$tempmin = $_POST['tempmin'];
$tempmax = $_POST['tempmax'];
$commentaires = $_POST['commentaires'];

if(!empty($_POST))
{
  extract($_POST);
  $valid = (empty($date) || empty($periode) ||empty($resume) || empty($tempmin) || !filter_var($tempmin,FILTER_VALIDATE_FLOAT)|| empty($tempmax) || !filter_var($tempmax,FILTER_VALIDATE_FLOAT)|| empty($commentaires))?  false : true;
  $erreurdate = (empty($date)) ? 'Indiquez la date' : null;
  $erreurperiode = (empty($periode)) ? 'Indiquez une période' : null;
  $erreurresume = (empty($resume)) ? 'Indiquez un résumé' : null;
  $erreurtempmin = (empty($tempmin)|| !filter_var($tempmin,FILTER_VALIDATE_FLOAT)) ? 'Indiquez une température minimum valide' : null;
  $erreurtempmax = (empty($tempmax)|| !filter_var($tempmax,FILTER_VALIDATE_FLOAT)) ? 'Indiquez une température maximum valide' : null;
  $erreurcommentaires = (empty($commentaires)) ? 'Indiquez un commentaire' : null;
  if($valid)
  {
    $formulaire = new Formulaire();
    
   $formulaire->insertFormulaire($date,$ville,$periode,$valeur_resume,$resume,$tempmin,$tempmax,$commentaires);
  

    
   
    
    $success = 'Message envoy�';
  }
}

	

?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" type="text/css" href="style.css" media="all" />
  <title>Formulaire meteo </title>
</head>
<body>
  
  <div id="content">
    <?php if(isset($success)):?>
    <div class="success"><?php echo $success;?></div>
    <?php endif;?>
   <fieldset> 
<legend><p>VOTRE PAGE MÉTÉO DE LA VILLE DE PARIS</p></legend> 
    <form action="index.php" method="post">
     <label for="date">Entrez la date :</label>
   <span class="error"><?php if(isset($erreurdate)) echo $erreurdate;?></span>
     <select name="date"/>
<option value="">entrez la date</option>
<?php
echo '<option value="'.$aujoudhui.'">'.$aujoudhui.'</option>'; 
echo '<option value="'.$demain.'">'.$demain.'</option>';
echo '<option value="'.$apres_demain.'">'.$apres_demain.'</option>';
?>

</select>
<?php if(isset($_POST['date'])) 
{
	$date = $_POST['date'];
	
}
echo '<br>';

?>
 <label for="periode">Entrez la période :</label>
   <span class="error"><?php if(isset($erreurperiode)) echo $erreurperiode;?></span>   
<select name="periode">
       <option value ="">entrez la période</option>
        <option value ="matin">matin</option>
        <option value ="après-midi">après-midi</option>
        <option value ="nuit">nuit</option>
</select>
<?php if(isset($_POST['periode'])) 
{
	$periode = $_POST['periode'];
	
}
echo '<br>';

?>
<label for="resume">Entrez le résumé :</label>
  <span class="error"><?php if(isset($erreurresume)) echo $erreurresume;?></span>  
  <select name="resume">
<option value="">entrez la valeur</option>
<?php
foreach($resumes as $key => $resume):
echo '<option value="'.$key.'">'.$resume.'</option>'; //close your tags!!
endforeach;
?>
</select>
<?php if(isset($_POST['resume'])) 
{
	$resume = $_POST['resume'];
	$resume_valeur = $resumes[$_POST['resume']];
}
echo '<br>';

?>
 <label for="tempmin">Température Minimum :</label>
     <span class="error"><?php if(isset($erreurtempmin)) echo $erreurtempmin;?></span>
      <input type="text" name="tempmin" value="<?php if(isset($_POST[$tempmin])) ;?>" /></br>
      <?php echo $tempmin;?>
      
      <label for="tempmax">Température Maximum :</label>
     <span class="error"><?php if(isset($erreurtempmax)) echo $erreurtempmax;?></span>
      <input type="text" name="tempmax" value="<?php if(isset($_POST[$tempmax])) ;?>" /></br>
     <?php echo $tempmax;?>
      <label for="commentaires">Votre commentaire :</label>
      <span class="error"><?php if(isset($erreurcommentaires)) echo $erreurcommentaires;?></span>
      <textarea name="commentaires"><?php if(isset($_POST[$commentaires])) ;?></textarea>
  <?php echo $commentaires;?>

      <input type="submit" class="submit" value="submit" />
      
      
    </form>
    </fieldset>
    <?php
 // $formulaire = new Formulaire();
    
  // $formulaire->insertFormulaire($date,$ville,$periode,$resume,$resume_id,$tempmin,$tempmax,$commentaires);
  

   ?>
	
  </div>
  
</body>
</html>
mon Formulaire.class.php
<?php

class Formulaire
{
 
  
  public function insertFormulaire($date,$ville,$periode,$valeur_resume,$resume,$tempmin,$tempmax,$commentaires)
  {
	  
	 
 
 $mysqli = new mysqli('localhost','root','root','meteo');
$mysqli->set_charset("utf8"); // encodage utf8
/* vérification de la connexion */
if($mysqli->connect_errno) {
	
printf("echec de la connexion : %s\n" ,$mysqli->connect_error);
exit();
}

if (!$mysqli->query('INSERT INTO formulaire(date,ville,periode,valeur_resume,resume,tempmin,tempmax,commentaires)VALUES("'. $date .'","' . $ville .'", "' . $periode .'","' . $valeur_resume .'","' . $resume .'","' . $tempmin .'","' . $tempmax .'","' . $commentaires .'")'))
	
{
	
	echo 'une erreur est survenue lors de l\'insertion des données dans la base. Message d\'erreur : '. $mysqli->error;
	
	return false ;
	
}	
	
	else
	return true;
	$mysqli->close();
	
	
  
  }
	public function getFormulaire()
	{
	$mysqli = new mysqli('localhost','root','root','meteo');
    $mysqli->set_charset("utf8"); // encodage utf8
/* vérification de la connexion */
if($mysqli->connect_errno) {
	
printf("echec de la connexion : %s\n" ,$mysqli->connect_error);
exit();
}
 $result = $mysqli ->query ('SELECT id,date,periode,resume,sel,tempmin,tempmax, commentaires FROM formulaire');
 
       if(!$result)
	   {
		 echo 'une erreur est survenue lors de l\'insertion dans la base de donnée. Message d\'erreur : ' . $mysqli->error;
		 return false;
	   }
		       else{
			   
		   $row = $result->fetch_array();
		   $formulaire_data ['date'] = $row['date'];
           $formulaire_data ['periode'] = $row['periode'];  
           $formulaire_data ['resume'] = $row['resume'];
           $formulaire_data ['sel'] = $row['sel'];
		    $formulaire_data ['tempmin'] = $row['tempin'];  
           $formulaire_data ['tempmax'] = $row['tempmax'];
           $formulaire_data ['commentaires'] = $row['commentaires'];
		   return $formulaire_data ;
			   }
			   $mysqli->close();
	}
		   
	
}
?>

Mammouth du PHP | 1967 Messages

15 janv. 2016, 09:35

tu as testé ta requète dans phpmyadmin ?? tu l'as affichée juste avant de l’exécuter pour la vérifier ?
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 janv. 2016, 10:23

Bonjour,

Le problème est-il au niveau de la requête ou de la récupération du formulaire ?

Essayes d'enlever l'espace entre l'attribut value et le = dans tes options :
<select name="periode">
       <option value="">entrez la période</option>
        <option value="matin">matin</option>
        <option value="après-midi">après-midi</option>
        <option value="nuit">nuit</option>
</select>
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 18 Messages

15 janv. 2016, 11:12

excuse moi , mais je parlai du select resume
<label for="resume">Entrez le résumé :</label>
  <span class="error"><?php if(isset($erreurresume)) echo $erreurresume;?></span>  
  <select name="resume">
<option value="">entrez la valeur</option>
<?php
foreach($resumes as $key => $resume):
echo '<option value="'.$key.'">'.$resume.'</option>'; //close your tags!!
endforeach;
?>
</select>
<?php if(isset($_POST['resume'])) 
{
	$resume = $_POST['resume'];
	$resume_valeur = $resumes[$_POST['resume']];
}
echo '<br>';

?>

ynx
Mammouth du PHP | 586 Messages

15 janv. 2016, 15:18

Salut,

Dans l'appel de la méthode insertFormulaire() à la ligne 27 de ton fichier index.php, la variable $valeur_resume n'est pas définie.
Il faut donc initialiser la variable $valeur_resume avant d'appeler la méthode insertFormulaire().

Bonne journée