Signaler

Lier formulaire à une base de donnée [Résolu/Fermé]

Posez votre question blanddd 18Messages postés samedi 6 février 2010Date d'inscription 25 novembre 2012 Dernière intervention - Dernière réponse le 16 mars 2017 à 20:14 par Ssw
Bonjour,
Je suis en licence pro multimédia, mais je viens d'un BTS de communication donc rien avoir avec la programmation: donc mon niveau de programmation est NOVICE.
Pour ma licence pro, j'ai dû créer de A à Z un site pour le présenter à ma soutenance (dans 5j).
Je n'ai toujours pas réussi à lier mon formulaire avec ma base de donnée PHPMyAdmin.
Je voudrais savoir comment il faut faire?
Je voudrais que ma base de donnée puisse récupérer nom, prénom, adresse mail.
Merci par avance
Afficher la suite 
Utile
+3
plus moins
<?php
mysql_connect("localhost", "sdz", "mot_de_passe");
mysql_select_db("ta-base");

$nom = addslashes(mysql_real_escape_string($_POST['nom']));
$prenom = addslashes(mysql_escape_string($_POST['prenom']));
$mail = mysql_escape_string($_POST['mail']);

mysql_query("INSERT INTO ta-table VALUES('', '" . $nom . "', '" . $prenom . "', '" . $mail . "')");
?>


Je crois pas qu'il y a d'erreurs.
J'ai mis $_POST mais ça peut être $_GET.
Il y a des modifications à faire : vérifier si c'est une adresse mail valide avant de mettre dans la base ; sécuriser nom, prenom et mail ; etc...
Utile
+1
plus moins
Tu as deux fois : mysql_connect();
Il faut que tu mettes ton-speudo-utilisateur et ton-mot-de-pass.

Avec :
mysql_select_db("Ta-Base");
Tu choisis ta base.

Pour l'insertion dans ta table, prends mon morceau en changeant les variables.
Car il y a l'auto-incrémentation de l'id.
mysql_query("INSERT INTO ta-table VALUES('', '" . $tes-variables . "', '" . $tes-variables . "', '" . $tes-variables . "')");



Pense à mettre un champ que tu nomme id, en première position dans ta table, en auto-incrémentation.
Pour savoir comment faire, regarde en début de page, là où tu as pris les scripts PHP.
Utile
+1
plus moins
Je ne comprends pas quand tu me dis:"mysql_select_db("Ta-Base");
Tu choisis ta base. " J'ai déjà mis le nom de ma base c'est "ased".

Je ne comprends pas non plus la deuxième partie concernant l'insertion dans ma table.
J'ai déjà créé ma base de donnée avec ma table" formulaire".
Donc là je galère pour tout comprendre
DSL je ne suis pas blonde, mais là j'ai beaucoup de mal à comprendre
Peux tu m'expliquer plus en détails.
Utile
+1
plus moins
Je t'ai dit que c'est pas normal de répéter :
- mysql_connect(); deux fois
- mysql_select_db(); deux fois, car tu te connecte à une seule base.

<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("ased"); // Sélection de la base mateo21

//appel du fichier de connexion à la base de données
mysql_connect("localhost", "cinema", "root");
mysql_select_db("utilisateurs");


Donc tu mets que ce-ci :

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("ased");


___________________________
Ensuite ;

$reqinsert="insert into utilisateurs values ('','$nom','$prenom','$adresse','$codepostal','$ville','$datedenaissance','$email');"

J'ai rajouté : ''
Ca deviendra 'id' dans ta table.

Donc avec phpmyadmin dans wamp (par exemple) tu crées un champ supplémentaire, en première position, que tu mets en auto-incrémentation.
Utile
+0
plus moins
Merci pour les infos!!
Comment je peux récupérer toutes les formules pour vérifier: adresse mail, date de naissance, code postal..etc?
Pourrais tu me dire si mon code est bon pour l'instant?

C'est mon fichier "cible.php"
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("ased"); // Sélection de la base mateo21

//appel du fichier de connexion à la base de données
mysql_connect("localhost", "cinema", "root");
mysql_select_db("utilisateurs");

//récupérations des valeurs saisies dans le formulaire
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$adresse=$_POST['adresse'];
$codepostal=$_POST['codepostal'];
$ville=$_POST['ville'];
$datedenaissance=$_POST['datedenaissance'];
$email=$_POST['email'];


//affichage du contenu des variables
echo "Les données ont bien été transmisses.";

//insertion dans la base de données
$reqinsert="insert into utilisateurs values ('$nom','$prenom','$adresse','$codepostal','$ville','$datedenaissance','$email');"

mysql_query($reqinsert) or die("La requête ne fonctionne pas. La table n'a pas été mise à jour. <br />".mysql_error());

mysql_close(); // Déconnexion de MySQL
?>



mon fichier formulaire:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<FORM ACTION = "cible.php" METHOD = "post" ENCTYPE= "text/plain" NAME = "ADHESION">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>LADHESION</title>
<link href="Style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="script.js"></script>
<style type="text/css">
<!--
body {
background-color: #E600FF;
}
--></style></head>
<body>
<?php
include ("FH1.php");
?>
<div align="left"><a href="LADHESION.php"><img src="DRAPEAUFRANCAIS.jpg" width="29" height="18" alt="Version française" /></a><a href="LADHESIONA.php"><img src="DRAPEAUANGLAIS.jpg" width="29" height="18" alt="Version anglaise" style="padding-left:7px;" /></a></font></div>
<br />
<?php
include ("formehautdepage.php");
?>

<p>
</p>
<br />
<br />
<p div align="center" class="titrepage">
L'adhésion
</div></p>
<p div class="texte">
L'adhésion à l'ASED est de 15€.<br /> Si voulez adhérez, envoyez un chèque à l'ASED à l'adresse suivante: 119 rue de Bellevue 91330 Yerres.<br /><br />
<form method="post" action="cible.php">
<table class="table">
<tr>
<td>Civilité</td>
<td><select name="choix">
<option value="choix1">Monsieur</option>
<option value="choix2">Madame</option>
<option value="choix3">Mademoiselle</option>
</select>
</td></tr>
<tr>
<td>
Nom: </td> <td> <Input type = "text" name = "nom" maxlength = 25></td> </tr>
<tr> <td>
Prénom:</td> <td> <Input type = "text" name = "prenom" maxlength = 15></td> </tr>
<tr> <td>
Adresse: </td> <td><Input type = "text" name = "adresse" maxlength = 100><td> </tr>
<tr> <td>
Code Postal: </td> <td><Input type = "text" name = "codepostal" maxlength = 5><td> </tr>
<tr> <td>
Ville: </td> <td><Input type = "text" name = "e-mail" maxlength = 20><td> </tr>
<tr> <td>
E-mail: </td> <td><Input type = "text" name = "e-mail" maxlength = 50><td> </tr>
</table>

</br>

<Input type = "reset" name = "annul" value = "Annuler">
<Input type= "Submit" name= "envoyer"/>



</br>
</form>
</div></p>
<?php
include("formebaspage.php");
?>

</body>
</html>

Merci car pour l'instant ça ne marche pas.
Ssw- 16 mars 2017 à 20:14
Oui c'est sensé marcher
Répondre

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !