Alimentation de la base de donnée

freddybrandt -  
 freddybrandt -
Bonjour,

Voila mon probleme je suis en bts info gestion et je suis sur la creation d'une base de donnée et pour l'alimenter un formulaire en php.Malheureusement l'alimentation de la base ne se fait pas.
Voila mes Script
Script de la base de données:
DROP DATABASE IF EXISTS GRH;
CREATE DATABASE IF NOT EXISTS GRH;
USE GRH;

CREATE TABLE Postes (poste ENUM('Directeur', 'Développeur', 'Analyste')Primary key,
salaire DECIMAL (10,2))
ENGINE = InnoDB;

CREATE TABLE Employes (
id_emp INT(8) AUTO_INCREMENT PRIMARY KEY,
Nom VARCHAR(40) NOT NULL,
Poste VARCHAR(40)
) ENGINE = InnoDB CHARACTER SET latin1 COMMENT = 'La table des employes' AUTO_INCREMENT =101;

INSERT INTO Postes VALUES('Directeur', 555000.00);
INSERT INTO Postes VALUES('Développeur', 12000.00);
INSERT INTO Postes VALUES('Analyste', 234500.00);

Script du formulaire d'inscription:
<?php
//connexion et selection de la base

$action=$_POST['action'];
$lien=mysql_connect('localhost', 'stagiaire', 'joker') or die ('impossible de se connecter');

echo "<center>Formulaire d'ajout";
mysql_select_db(grh) or die ("Impossible de sélectionner la base de données");

//Exécuter des requêtes SQL
$requete = "SELECT poste FROM postes";
$result = mysql_query($requete) or die ("Erreur dans la requete");

if (isset($action)) {
$requete1="insert into employes(id_emp,nom,poste) values('','".$_POST['nom']."', '".$POST['poste']. "')";

$ok = mysql_query($requete1);
}

//Afficher des résultat en HTML
echo "<table><form method=post>\n";
echo "<tr><td>Nom :</td><td><input type=text name=nom></td></tr>";

echo "<tr><td colspan='2'><input type=hidden name=action value=insertion></td></tr>";
echo "<tr><td>Poste :</td><td><SELECT name=poste>";
while ($line = mysql_fetch_assoc($result))
{
foreach ($line as $col_value)
{ echo "<option value=".$col_value."> ".$col_value." </option>";

}
} echo "</td></select></tr>";
echo "<tr><td colspan=2><input type=submit value=Insertion></td></tr></form></table></center>";

echo "<br>Voici la derniere requete exécutée : ".$requete1;

//Libération des résultats
mysql_free_result ($result);
//Fermeture de la connexion
mysql_close($lien);
?>

____________________________________________________________________________________________
Merci pour votre aide

5 réponses

kij_82 Messages postés 4260 Statut Contributeur 857
 
Pour un raffraichissement direct dans un premier temps je mettrais ceci :

if (isset($action)) {
$requete1="insert into employes(id_emp,nom,poste) values('','".$_POST['nom']."', '".$POST['poste']. "')";

$ok = mysql_query($requete1);
}



Juste avant ceci :

//Exécuter des requêtes SQL
$requete = "SELECT poste FROM postes";
$result = mysql_query($requete) or die ("Erreur dans la requete"); 



Sinon quelles sont les erreurs (affichées ou non) par ton programme ?
1
freddybrandt Messages postés 2 Statut Membre
 
Voila ce qu'il ma'affiche lorsque je remplie le formulaire avec un nom

Voici la derniere requete exécutée : insert into employes(id_emp,nom,poste) values('','freddy brandt', '')

Hors lorsque je consulte la base de donnée il ny a aucune entrée.
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
As-tu essayé d'exécuter ta requête SQL à la main sur ta base de données ? Test là de manière à savoir si elle est correcte, car a priori ça ne semble pas être le cas. Je pense que Wanp t'en dira plus sur l'erreur possible si elle est là.
0
freddybrandt
 
En fait j'utilise un packtage avec php mysql et apache.
En fait si je lance la requete sans id_emp ca passe pas ,mais si je mets un chiffre la requete passe correctement.
A mon avis le probleme vient de l'auto increment.
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Dans ce cas là oui, est ce que tu as bien définit dans ta base de données le premier champs en auto_increment ?
Si oui l'autoincrement est peut etre mal géré avec ton package, peux-tu en essayer un autre ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
freddybrandt
 
Oui comme tu peux le voir au debut du post le 1er champ est en auto increment.
je vais essayer avec wamp.
0