Simple formulaire pour INSERT dans une BD ??
Hors ligneSalva Le 24/12/2006 à 12:36 Profil de Salva Configuration de Salva

Salut à tous,

Bon la j'ai honte je n'arive pas faire fonctionner un simple formulaire pour inserer des champs dans une Bd Mysql
Le problème est que rien ne s'inscrit dans ma BD

J'ai une Bd avec une table qui s'appel "petition"
dans cette table j'ai les champs
id
nom
prenom
adresse
cp
ville
email
asso
commentaire

dans mon formulaire j'ai les même champs sauf id

j'ai mis en début de page le code suivant :



<?php require_once('Connections/connexionmy135040.php'); ?>
<?php 
//"petition"
if ($HTTP_POST_VARS['petition']=="ok") //en rapport avec le bouton "valider" de mon formulaire
{
$insertSQL="INSERT INTO petition (nom, prenom, adresse, cp, ville, email, asso, commentaire) VALUES ('$nom', '$prenom', '$adresse', '$cp', '$ville', '$email', '$asso', '$commentaire')";
}
?>


Pour le formulaire



<form name="form1" method="POST" action="petition.php">
          <table width="100%"  border="0">
            <tr>
              <th scope="col">
<div align="left">Nom</div></th>
              <td><input name="$nom" type="text" id="$nom" size="50" maxlength="50"></td>
            </tr>

            <tr>
              <td>
<p>Pr&eacute;nom</p>
                </td>
              <td>
<input name="$prenom" type="text" id="$prenom" size="50" maxlength="50"></td>
            </tr>

            <tr>
              <td>
Adresse</td>
              <td>
<input name="adresse" type="text" id="adresse" size="150" maxlength="200"></td>
            </tr>

            <tr>
              <td>
Code postal </td>
              <td>
<input name="cp" type="text" id="cp" size="5" maxlength="5"></td>
            </tr>

            <tr>
              <td>
Ville</td>
              <td>
<input name="ville" type="text" id="ville" size="50" maxlength="50"></td>
            </tr>

            <tr>
              <td>
E-mail</td>
              <td>
<input name="email" type="text" id="email" size="50" maxlength="50"></td>
            </tr>

            <tr>
              <td>
Membre d'une association de consommateurs </td>
              <td>
<input name="asso" type="text" id="asso" value="Nom de l'association" size="30" maxlength="40">
                (Facultatif) </td>
            </tr>

            <tr>
              <td>
<br>Commentaires<br>
                (Réalisez sous votre résponsablitité)<br></td>
              <td><br>
                <textarea name="commentaire" cols="100" rows="5" id="commentaire">Inscrivez votre commentaire ici. (Facultatif)</textarea>
               </td>

            </tr>
            <tr>

              <td>&nbsp;</td>
              <td><input type="reset" name="Submit" value="Réinitialiser"> <input type="submit" name="Submit" value="valider">
                <input name="petition" type="hidden" id="petition" value="ok"></td>
            </tr>

          </table>
            
        </form>
        




Merci et joyeuse fêtes de fin d'année

Salutations.
Hors ligneElidris Le 02/01/2007 à 14:58 Profil de Elidris Configuration de Elidris

Encéphalo plat !
Bonjour à toi,

aprés lecture de ton code je pense que tu devrais mettre tes champs input comme ceci (sans le signe $):



<input name="nom" type="text" size="50" maxlength="50">

et pas :

<input name="$nom" type="text" id="$nom" size="50" maxlength="50">


et ici le champs Id n'a pas lieu d'être à ma connaissance.

le fait de mettre name="nom" créé automatiquement une variable $nom

...
ensuite, si c'est un formulaire qui s'auto-appelle tu devrais mettre ton code de mise à jour de table en fin de page. ? non !

et je crois egalement qu'il faut que ton champ Id de ta table SQL soit en auto-incrementation vu que tu ne lui envoi rien sur cette ligne.
--
"Les experts auront beau se mettrent tous d'accord, il peuvent se tromper."
Hors ligneAudayls Le 02/01/2007 à 18:36 Profil de Audayls Configuration de Audayls

Jeune Padawan
Salut,
Quelques petites remarques pour completer ce que Elidris a dis :

  • Sauf si ta version de PHP est inférieur à 4.1 (comme sur Tiscali (devenu Alice)) n'utilise pas "$HTTP_POST_VARS" mais "$_POST".
  • Si tu veux vérifier qu'un formulaire a été posté tu peux faire "if (!empty($_POST)) {" c'est plus simple

--
'Cause it's a bittersweet symphony, this life
Hors ligneAnthony Le 02/01/2007 à 19:38 Profil de Anthony Configuration de Anthony

Admin
Salut,

!empty() c'est pour vérifier qu'une variable n'est pas vide, même si ça ne renvoie rien si la variable n'existe pas. Le problème est que la vraie fonction adaptée pour savoir si une variable existe, c'est isset(). Autant utiliser isset(), et après tu fais tes vérifications.

a +
--

Hors ligneAudayls Le 02/01/2007 à 19:47 Profil de Audayls Configuration de Audayls

Jeune Padawan
Non car la variable "$_POST" existe toujours même lorsqu'il n'y a aucun formulaire envoyé ("$_POST = array();" dans ce cas).
--
'Cause it's a bittersweet symphony, this life
Hors ligneAnthony Le 02/01/2007 à 20:09 Profil de Anthony Configuration de Anthony

Admin
Dans ce cas là tu fais un if(isset($_POST['ta_variable'])) :)
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels