Mysql, php, html FORMULAIRE
Babriehead
Messages postés
68
Statut
Membre
-
Babriehead Messages postés 68 Statut Membre -
Babriehead Messages postés 68 Statut Membre -
Bonjour, débutant en php et sql je test quelque petite chose et j'aimerais comprendre le problème de """""""(gros gros guillemet)mon"""""""""" code
Je voudrais, grace a un formulaire (html) récupérer les données insérer par l'utilisateur (php) dans une base de donnée sous mySql.
Mon problème est que le formulaire une fois valider renvoie sur la page qui traite le formulaire (donc page blanche), aucun message d'erreur sauf que dans mysql, dans ma table,//// SELECT * FROM `eleve`////// N'affiche rien, si quelqu'un pouvais me donner 1/2 conseils et m'aider a trouver le problème.
phpsqlform.php
<?php
global $host, $db,$id, $prenom ,$nom, $sexe, $dateNaiss, $adresse, $telP, $telF, $mail, $lycee, $permisE, $dispo; // Si c'est dans une fonction
$bdd = new PDO('mysql:localhost='.$host.'dbname='.$db);
$req = $bdd->prepare('INSERT INTO eleve(id, prenom, nom, sexe, dateNaiss, adresse, telP, telF, mail, lycee,permisE, dispo) VALUES(:id, :prenom, :nom, :sexe, :dateNaiss, :adresse, :telP, :telF, :mail, :lycee, :permisE, :dispo)');
$req->execute(array(
'id' => $id,
'prenom' => $prenom,
'nom' => $nom,
'sexe' => $sexe,
'dateNaiss' => $dateNaiss,
'adresse' => $adresse,
'telP' => $telP,
'telF' => $telF,
'mail' => $mail,
'lycee' => $lycee,
'permisE' => $permisE,
'dispo' => $dispo,
));
?>
Inscription.php
<html>
<body>
<form action="phpsqlform.php" method="post">
Numéro : <input type="text" name="id"><br>
Prénom : <input type="text" name="prenom"><br>
Nom : <input type="text" name="nom"><br>
Sexe : <input type="text" name="sexe"><br>
Date de naissance : <input type="date" name="dateNaiss"><br>
Adresse : <input type="text" name="adresse"><br>
Téléphonne Portable 1 : <input type="number" name="telP"><br>
Téléphonne Portable 2 : <input type="text" name="telF"><br>
Email : <input type="text" name="mail"><br>
Lycée (si vous êtes lycéen) : <input type="text" name="lycee"><br>
Permis voulus : <input type="checkbox" name="permisE" value ="AAC">Conduite accompagné<br>
<input type="checkbox" name="permisE" value ="supervise">Conduite supervisé<br>
Dispo : <input type="text" name="dispo"><br>
<input type="submit" name="bt" value="valider"><br>
</form>
</body>
</html>
Je suis débutant, merci beaucoup.
Je voudrais, grace a un formulaire (html) récupérer les données insérer par l'utilisateur (php) dans une base de donnée sous mySql.
Mon problème est que le formulaire une fois valider renvoie sur la page qui traite le formulaire (donc page blanche), aucun message d'erreur sauf que dans mysql, dans ma table,//// SELECT * FROM `eleve`////// N'affiche rien, si quelqu'un pouvais me donner 1/2 conseils et m'aider a trouver le problème.
phpsqlform.php
<?php
global $host, $db,$id, $prenom ,$nom, $sexe, $dateNaiss, $adresse, $telP, $telF, $mail, $lycee, $permisE, $dispo; // Si c'est dans une fonction
$bdd = new PDO('mysql:localhost='.$host.'dbname='.$db);
$req = $bdd->prepare('INSERT INTO eleve(id, prenom, nom, sexe, dateNaiss, adresse, telP, telF, mail, lycee,permisE, dispo) VALUES(:id, :prenom, :nom, :sexe, :dateNaiss, :adresse, :telP, :telF, :mail, :lycee, :permisE, :dispo)');
$req->execute(array(
'id' => $id,
'prenom' => $prenom,
'nom' => $nom,
'sexe' => $sexe,
'dateNaiss' => $dateNaiss,
'adresse' => $adresse,
'telP' => $telP,
'telF' => $telF,
'mail' => $mail,
'lycee' => $lycee,
'permisE' => $permisE,
'dispo' => $dispo,
));
?>
Inscription.php
<html>
<body>
<form action="phpsqlform.php" method="post">
Numéro : <input type="text" name="id"><br>
Prénom : <input type="text" name="prenom"><br>
Nom : <input type="text" name="nom"><br>
Sexe : <input type="text" name="sexe"><br>
Date de naissance : <input type="date" name="dateNaiss"><br>
Adresse : <input type="text" name="adresse"><br>
Téléphonne Portable 1 : <input type="number" name="telP"><br>
Téléphonne Portable 2 : <input type="text" name="telF"><br>
Email : <input type="text" name="mail"><br>
Lycée (si vous êtes lycéen) : <input type="text" name="lycee"><br>
Permis voulus : <input type="checkbox" name="permisE" value ="AAC">Conduite accompagné<br>
<input type="checkbox" name="permisE" value ="supervise">Conduite supervisé<br>
Dispo : <input type="text" name="dispo"><br>
<input type="submit" name="bt" value="valider"><br>
</form>
</body>
</html>
Je suis débutant, merci beaucoup.
2 réponses
-
Bonjour,
Il vous manque la récupération des données de votre formulaire.
Sachant que votre formulaire est en POST vous devez récupérer les données de cette manière.$id=$_POST['id']
$prenom=$_POST['prenom']
Ça permet de récupérer les données du formulaire qui ont pour nom "id" et "prenom".
une fois récupérer ça pourra les mettre dans votre base-
-
La déclaration des variables n'est pas nécessaire en php .
Voici comment vous pouvez reprendre votre code.
<?php
global $host, $db,$id, $prenom ,$nom, $sexe, $dateNaiss, $adresse, $telP, $telF, $mail, $lycee, $permisE, $dispo; // Si c'est dans une fonction
$bdd = new PDO('mysql:localhost='.$host.'dbname='.$db);
//On fait une vérification d'un champs pour voir si le formulaire a bien était saisi
if (isset($_POST['id'])){
// On récupère les données du formulaire
$id=$_POST['id'];
$prenom=$_POST['prenom'];
//Je vous laisse continuer pour toute les variable que votre formulaire envoi
// Si vous voulez connaitre tous les champs rajouter le code ci-dessous
//var_dump($_POST);die; Ca permet de lister votre tableau $_POST.
}
$req = $bdd->prepare('INSERT INTO eleve(id, prenom, nom, sexe, dateNaiss, adresse, telP, telF, mail, lycee,permisE, dispo) VALUES(:id, :prenom, :nom, :sexe, :dateNaiss, :adresse, :telP, :telF, :mail, :lycee, :permisE, :dispo)');
$req->execute(array(
'id' => $id,
'prenom' => $prenom,
'nom' => $nom,
'sexe' => $sexe,
'dateNaiss' => $dateNaiss,
'adresse' => $adresse,
'telP' => $telP,
'telF' => $telF,
'mail' => $mail,
'lycee' => $lycee,
'permisE' => $permisE,
'dispo' => $dispo
));
?> -
-
array (size=13)
'id' => string '2' (length=1)
'prenom' => string '***' (length=3)
'nom' => string '***' (length=9)
'sexe' => string '**' (length=1)
'dateNaiss' => string '***' (length=10)
'adresse' => string '***' (length=17)
'telP' => string '***' (length=10)
'telF' => string '**' (length=10)
'mail' => string '***' (length=22)
'lycee' => string '***' (length=7)
'permisE' => string '***' (length=3)
'dispo' => string 'tout les jours' (length=14)
'bt' => string 'valider' (length=7)
J'ai l'impression que tout fonctionne correctement, les données sont bien envoyé dans le script mais depuis mySql, SELECT * FROM eleve ne renvois toujours rien -
Ca permet que si on tape "Votre_url.com/traitement.php" ( ce qui est possible) on ai pas accès a cette page pour cela que dans le Else de ce if on renvoi vers une page du type erreur ou vers l'index de votre site;)
Voila avec ce que vous récupérer du formulaire Vous avez de quoi faire un Insert , et derrière récupérer afficher votre bdd avec un select. Cependant faite attention , si dans votre BDD L'id est en auto incrément ( ce qui est le cas dans 99% cas ) Votre insert ne doit pas lui donner de valeur .
Comme ceci.
$req = $bdd->prepare("INSERT INTO eleve(id, prenom, nom, sexe, dateNaiss, adresse, telP, telF, mail, lycee,permisE, dispo) VALUES('', :prenom, :nom, :sexe, :dateNaiss, :adresse, :telP, :telF, :mail, :lycee, :permisE, :dispo)");
-
-
Pas de message d'erreur sur la première partie de code?
Bien sur quand je vous met du code il faut l'adapter. Si vous mettez par exemple:
dbname='nom_de_la_bdd'
Ça ne peut pas marcher
Pouvez-vous m'envoyer vos fichier de votre site? ( en privée par exemple grace a http://cjoint.com)-
https://www.cjoint.com/c/FFnmKA3v5kq
https://www.cjoint.com/c/FFnmLnteMHq
Voila, désolé pour l'attente -
-
-
C'est juste que vous vous connectez a une base de données vide. ( C'est d’ailleurs bien ce qui me semblait en voyant votre fichier mais je voulais être sur)
Certes l'idée de connexion est bonne et la syntaxe correct ( a 2 paramètre près ) Cependant vous devez indique les chemin de votre base de données
essayer avec ce code de connexion
$bdd = new PDO('mysql:localhost=localhost;dbname=eleve';'admin';'root');
Remplacer eleve par le nom de votre bdd dans phpmyadmin -
-