[PHP/SQL] Insertion données

Fermé
ed - 15 avril 2007 à 00:13
 flattazor - 27 sept. 2008 à 19:26
Bonsoir,
Cela fait quelques semaines que je patauge sur une requête simple même pour un débutant.
Je cherche à alimenter une table sql par un formulaire php.

J'ai visité nombres de forums et de tutos que j'ai suivi à la lettre... enfin je crois.
En réalité, il ne se passe rien. Quand je teste ma requete sql dans sql, cela fonctionne mais qd je suis dans mon formulaire, cela ne fonctionne pas. Qui pourrait m'aider ?

<?php
// Connexion avec fichier include
include('connexion/connexion_inc.php');

// -- on récupère les champs --
if(isset($_POST['nom'])) $nom = $_POST['nom'];else $nom="";
if(isset($_POST['prenom'])) $prenom = $_POST['prenom'];else $prenom="";
if(isset($_POST['DateNaiss'])) $DateNaiss = $_POST['DateNaiss'];else $DateNaiss="";
if(isset($_POST['LieuNaiss'])) $LieuNaiss = $_POST['LieuNaiss'];else $LieuNaiss="";
if(isset($_POST['PrenomPere'])) $PrenomPere = $_POST['PrenomPere'];else $PrenomPere="";
if(isset($_POST['PrenomMere'])) $PrenomMere = $_POST['PrenomMere'];else $PrenomMere="";
if(isset($_POST['NomMere'])) $NomMere = $_POST['NomMere'];else $NomMere="";

if (empty($prenom)) {
ECHO $message = 'Attention, le champ Prénom est obligatoire.';
}
else {
$req = "INSERT INTO
fichierglobal('id', 'nom', 'prenom', 'DateNaiss', 'LieuNaiss', 'PrenomPere', 'PrenomMere', 'NomMere')
VALUES('', $nom, $prenom, $DateNaiss, $LieuNaiss, $PrenomPere, $PrenomMere, $NomMere);";

mysql_query($req)or die('Erreur SQL !'.$req.'<br>'.mysql_error());
header("Location: merci.php");
}
?>
Merci à tous ceux qui m'apporteront un début de solution
ed
A voir également:

7 réponses

gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 330
15 avril 2007 à 20:48
Salut,
j'ai revu tes fichiers, voila mes commentaires, sans garantie 100% de résultat... :

1) connexion_inc.php :
dans ton fichier de connexion , il me semble qu'il manque (en gras) :

<?php
--------------------------------------------------------
// Paramètres de la connexion
$hote = 'localhost';
$login = 'root';
$pass = '';
$base = 'xxxxx';
// Connexion
$idConn = mysql_connect($hote, $login, $pass);
// Sélection de la base
mysql_select_db($base,$idConn) or die(mysql_error());
?>

2) le formulaire :

dans ton formulaire, action n'est pas déclaré :

<form id="formun" name="formun" method="post" action="envoi.php">

(si ton fichier s'appelle envoi.php)

3) envoi.php :

voici ce que je ferais :

<?php
// Connexion avec fichier include
include('connexion/connexion_inc.php');

// -- on récupère les champs --
if(isset($_POST['nom'])) $nom = $_POST['nom'];else $nom="";
if(isset($_POST['prenom'])) $prenom = $_POST['prenom'];else $prenom="";
if(isset($_POST['DateNaiss'])) $DateNaiss = $_POST['DateNaiss'];else $DateNaiss="";
if(isset($_POST['LieuNaiss'])) $LieuNaiss = $_POST['LieuNaiss'];else $LieuNaiss="";
if(isset($_POST['PrenomPere'])) $PrenomPere = $_POST['PrenomPere'];else $PrenomPere="";
if(isset($_POST['PrenomMere'])) $PrenomMere = $_POST['PrenomMere'];else $PrenomMere="";
if(isset($_POST['NomMere'])) $NomMere = $_POST['NomMere'];else $NomMere="";

if (empty($prenom)) {
ECHO $message = 'Attention, le champ Prénom est obligatoire.';
}
else {
$req = "INSERT INTO
fichierglobal('id', 'nom', 'prenom', 'DateNaiss', 'LieuNaiss', 'PrenomPere', 'PrenomMere', 'NomMere')
VALUES('', '$nom', '$prenom', '$DateNaiss', '$LieuNaiss', '$PrenomPere', '$PrenomMere', '$NomMere')";

mysql_query($req)or die('Erreur SQL !'.$req.'<br>'.mysql_error());
header('Location: merci.php');
}

// fermeture de la connexion vers Mysql
mysql_close();

?>

4) redirection :

il faut que merci.php soit bien dans le même dossier que envoi.php, sinon a toi de revoir l'adresse relative ET qu'il n'y ai eu AUCUN affichage html avant, balises comprises, sinon la fonction n'est pas exécutée, en clair que rien ne soit envoyé à l'utilisateur.

je me demande donc si ton ECHO $message = 'Attention, le champ Prénom est obligatoire.'; ne poserais pas probleme

5) euh, j'abandonne la, on m'appelle... regarde ca dejà ;-)
2
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 330
15 avril 2007 à 00:20
est ce que ca ne viendrait pas des parametres de ton fichier conexion_inc.php ?
1
Hello Gryzzly,

Pour le moment, je suis en local et mes autres requetes, (du style, j'affiche des données de ma base sql) fonctionnent.
Je ne pense pas que cela vienne de là.

<?php
--------------------------------------------------------
// Paramètres de la connexion
$hote = 'localhost';
$login = 'root';
$pass = '';
$base = 'xxxxx';
// Connexion
$idConn = mysql_connect($hote, $login, $pass);
// Sélection de la base
mysql_select_db($base) or die(mysql_error());
?>

ed
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 330
15 avril 2007 à 01:46
alors je pense que ca vient du formulaire en lui même, pas la partie sql qui me semble correcte. donne nous ton code qu'on regarde
1
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 330
15 avril 2007 à 12:28
bon, perso je bloque... mes courtes connaissances ne doivent pas être suffisantes. mais je suis sur que qq'un va trouver!
1
Hello Gryzzly et merci pour ton aide.
Dans un sens cela me rassure. Je comprends pkoi je tourne en rond depuis des semaines. Je ne vois pas ou ça cloche et je ne sais pas faire les tests qui pourraient me donner un début de solution.

En espérant que qqun pourra m'éclairer.
ed
0
Je peux fournir deux indications de "test"

1- le message "attention le champ.... est obligatoire" s'affiche alors que je n'ai pas encore pressé le bouton "Ajouter"...

2- après validation par "Ajouter", leformulaire se vide des informations et n'est pas redirigé vers la page "merci.php".

Déjà ces deux points sont un pb.
Merci
ed
0

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

Posez votre question
Le formulaire ressemble à ceci:
<form id="formun" name="formun" method="post" action="">
<table >
<tr >
<td >Nom :</td>
<td ><select name="nom" id="nom">
<?php
//-------------------------------------------------------------------------
// La boucle d'affichage des patros dans le menu déroulant commence ici...
while ($aPatro = mysql_fetch_array($resPatro)) {

?>
<option value="<?php echo $aPatro['idPatro']; ?>"><?php echo $aPatro['nom']; ?></option>
<?php
}
//-------------------------------------------------------------------------
?>
</select>
</td>
<td >Prénom :</td><td><input type="text" id="prenom" value="" size=25></td>
</tr>
<tr>
<td>Date Naissance :</td><td><input type="text" id="DateNaiss" value="" size=25></td>
<td>Lieu Naissance :</td><td><input type="text" id="LieuNaiss" value="" size=25></td>
</tr>
<tr>
<td>Prénom du Père :</td><td><input type="text" id="PrenomPere" value="" size=22></td>
</tr>
<tr>
<td>Prénom de la Mère :</td><td><input type="text" id="PrenomMere" value="" size=22></td>
<td>Nom de la Mère :</td><td><input type="text" id="NomMere" value="" size=22></td>
</tr>
<tr >
<td ><input type="submit" name="boutonAjouter" id="boutonAjouter" value="Ajouter" /></td><td class="attention" ><?php if (isset($message)) echo $message;?></td>
</tr>
</table>

Merci encore de votre aide
ed
0
<?php
--------------------------------------------------------
// Paramètres de la connexion
$hote = 'localhost';
$login = 'root';
$pass = '';
$base = 'xxxxx';
// Connexion
$idConn = mysql_connect($hote, $login, $pass);
// Sélection de la base
mysql_select_db($base) or die(mysql_error());
?>


il manque le nom de ta base !

mysql_select_db('nom_de_la _base',$db)
0
oups, mea culpa gryzzly, c'est juste pour la connection à la base, il falliat bien mettre $idconnect...

honte à moi
0