rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[PHP/SQL] Insertion données

ed, le dimanche 15 avril 2007 à 00:13: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
Configuration: Windows XP
Firefox 1.5.0.11
Répondre à ed  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gryzzly, le dimanche 15 avril 2007 à 00:20:36
est ce que ca ne viendrait pas des parametres de ton fichier conexion_inc.php ?
Répondre à gryzzly

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ed, le dimanche 15 avril 2007 à 00:28:35
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
Répondre à ed

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gryzzly, le dimanche 15 avril 2007 à 01:46:59
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
Répondre à gryzzly

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ed, le dimanche 15 avril 2007 à 10:43:03
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
Répondre à ed

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
gryzzly, le dimanche 15 avril 2007 à 12:28:37
bon, perso je bloque... mes courtes connaissances ne doivent pas être suffisantes. mais je suis sur que qq'un va trouver!
Répondre à gryzzly

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ed, le dimanche 15 avril 2007 à 14:20:48
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
Répondre à ed

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ed, le dimanche 15 avril 2007 à 15:01:33
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
Répondre à ed

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 gryzzly, le dimanche 15 avril 2007 à 20:48:24
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à ;-)
Répondre à gryzzly
Logiciels pertinents trouvés dans les téléchargements
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger MySQL 5.0.67MySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. Catégorie: Bases de données
Licence: Open Source
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger easyPHP 2.0b1easyPHP - EasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données...Catégorie: Serveurs
Licence: Open Source
Plus de logiciels gratuits sur « [php/sql] Problème pour insérer des données »