Probleme envoi de donnée formulaire

redshark59
Invité n'ayant pas de compte PHPfrance

15 avr. 2014, 10:33

Bonjour à tous, je suis entrain de créer un formulaire pour envoyer des infos dans ma base MySQL, mais je ne comprend pas, aucune ligne ne s'ajoute à ma base, je vous joins mon code.

Merci d'avance.
<?php
// database settings
$Host = 'localhost';
$User = 'root';
$Pass = '';
$Base = 'intranet';
 
// mysql table :
$Table = 'demande_dev';
?>
<FORM METHOD="POST">
Description:<INPUT TYPE=text NAME=desc><br>
Type:<INPUT TYPE=text NAME=type><br>
Developpeur/Utilisateur:<INPUT TYPE=text NAME=devuti><br>
Priorite:<SELECT name=priorite size=1>
<OPTION>Haute
<OPTION>Moyenne
<OPTION>Faible
</SELECT>
<br>
Etat:<SELECT name=etat size=1>
<OPTION>Demandée
<OPTION>En cours
<OPTION>Réalisée
</SELECT>
<br>
Date(JJ/MM/AAAA):<INPUT TYPE=text NAME=date><br>
Demandeur:<INPUT TYPE=text NAME=demandeur><br>
Email:<INPUT TYPE=text NAME=email>
<INPUT TYPE="submit" value="valider">
</FORM>
<br>

<?php

if(isset($_POST['valider'])){

	mysql_connect($Host, $User, $Pass);
	mysql_select_db($Base);
	$description = trim($_POST['desc']);
	$type = trim($_POST['type']);
	$devuti = trim($_POST['devuti']);
	$priorite = trim($_POST['priorite']);
	$etat = trim($_POST['etat']);
	$date = trim($_POST['date']);
	$demandeur = trim($_POST['demandeur']);
	$mail = trim($_POST['email']);
	
	mysql_query("INSERT INTO $Table('description', 'priorite', 'etat', 'date', 'demandeur', 'maildemandeur') VALUES ('".$description."', '".$type."', '".$devuti."', '".$priorite."', '".$etat."', '".$date."', '".$demandeur."', '".$mail."')");
	mysql_close();
}
?>

ViPHP
ViPHP | 2577 Messages

15 avr. 2014, 11:00

Bonjour,

Un bon début est de vérifier le code retour des fonctions.

Par exemple pour mysql_query(), il faut tester mysql_error() et afficher le message :
$sql = '....';
mysql_query($sql)
if (mysql_error() {
   die($sql.'<br>'.mysql_error());
Le message donne une indication et le code sql permet parfois de voir plus facilement l'erreur.

Par contre, les fonctions mysql_xxxx() vont être supprimées un jour, il vaut mieux utiliser mysqli et pdo

redshark59
Invité n'ayant pas de compte PHPfrance

15 avr. 2014, 11:22

Le probleme c'est que je n'ai pas d'erreur qui s'affiche, cela s'execute comme si les infos etaient envoyées mais il n'y a rien dans ma table.

redshark59
Invité n'ayant pas de compte PHPfrance

15 avr. 2014, 13:57

J'ai enlevé quelques bug et manques dans mon code mais hélas toujours rien dans ma table...
<?php
// database settings
$Host = 'localhost';
$User = 'root';
$Pass = '';
$Base = 'intranet';
 
// mysql table :
$Table = 'demande_dev';
?>
<FORM METHOD="POST">
Description:<INPUT TYPE="text" NAME="desc"><br>
Type:<INPUT TYPE="text" NAME="type"><br>
Developpeur/Utilisateur:<INPUT TYPE="text"NAME="devuti"><br>
Priorite:<SELECT name="priorite" size="1">
<OPTION value='Haute'>Haute</option>
<OPTION value='Moyenne'>Moyenne</option>
<OPTION value='Faible'>Faible</option>
</SELECT>
<br>
Etat:<SELECT name="etat" size="1">
<OPTION value='Demandée'>Demandée</option>
<OPTION value='En cours'>En cours</option>
<OPTION value='Réalisée'>Réalisée</option>
</SELECT>
<br>
Date(JJ/MM/AAAA):<INPUT TYPE="text" NAME="date"><br>
Demandeur:<INPUT TYPE="text" NAME="demandeur"><br>
Email:<INPUT TYPE="text" NAME="email">
<INPUT TYPE="submit" value="valider" name="valider">
</FORM>
<br>
 
<?php
 
if(isset($_POST['valider'])){
 
        mysql_connect($Host, $User, $Pass);
        mysql_select_db($Base);
        $description = trim($_POST['desc']);
        $type = trim($_POST['type']);
        $devuti = trim($_POST['devuti']);
        $priorite = trim($_POST['priorite']);
        $etat = trim($_POST['etat']);
        $date = trim($_POST['date']);
        $demandeur = trim($_POST['demandeur']);
        $mail = trim($_POST['email']);
 
        mysql_query("INSERT INTO demande_dev(description, priorite, etat, date, demandeur, maildemandeur) VALUES ($description, $type, $devuti, $priorite, $etat, $date, $demandeur, $mail)");
        mysql_close();
}
?>