Formulaire/ stockage des infos
Résolu
pontarose
Messages postés
150
Date d'inscription
Statut
Membre
Dernière intervention
-
pontarose Messages postés 150 Date d'inscription Statut Membre Dernière intervention -
pontarose Messages postés 150 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'explique mon problème:
J'ai un formulaire avec une liste et un champ de texte, on peut soit cliquer sur un élément de la liste soit taper dans le champ de texte. Et dans ce cas on a 2 configurations possible
_ soit cet élement existe auquel cas j'ai les informations correspondant a cet élément. Ces éléments étant contenue dans une base de données
_soit cet élement existe pas, auquel cas je souhaite que l'utilisateur puisse entrer les données correspondant a cet élément. Ces données seront ensuite enregistré dans la base de données.
J'espère que vous m'avez suivie.
Est-ce que c'est possible au moins?
Si oui est-ce que vous savez comment on fait?
Merci d'avance
J'explique mon problème:
J'ai un formulaire avec une liste et un champ de texte, on peut soit cliquer sur un élément de la liste soit taper dans le champ de texte. Et dans ce cas on a 2 configurations possible
_ soit cet élement existe auquel cas j'ai les informations correspondant a cet élément. Ces éléments étant contenue dans une base de données
_soit cet élement existe pas, auquel cas je souhaite que l'utilisateur puisse entrer les données correspondant a cet élément. Ces données seront ensuite enregistré dans la base de données.
J'espère que vous m'avez suivie.
Est-ce que c'est possible au moins?
Si oui est-ce que vous savez comment on fait?
Merci d'avance
A voir également:
- Formulaire/ stockage des infos
- Whatsapp formulaire opposition - Guide
- Espace de stockage gmail plein - Guide
- Formulaire de réclamation facebook - Guide
- Stockage google - Guide
- Stockage du téléphone - Accueil - Guide Android
2 réponses
Salut,
Ca dépend des langages utilisés mais sinon ce sont des opérations de base donc oui c'est tout à fait faisable.
Tu as un formulaire, c'est très bien. Dans ce formulaire tu définis la propriété "action" avec le nom d'un script srveur (par exemple recherche_ou_ajout.php). Et dans ce fichier tu récupères la donnée envoyée par le formulaire : Si la "method" (c'est le nom de l'attribut) du formulaire était "get" tu fais $element = $_GET['id_du_champ']. (enfin ça dépend du langage utilisé).
Ensuite tu fais la requête vers la base de données au moyen des fonctions fournies par le langage (par exemple mysql_query('select * from matable where element=\'$element\'');). Si le nombre de lignes retourné par la requête est supérieur ou égal à 1, la valeur existe. Sinon (0) la valeur n'existe pas et il te suffira de générer le code HTML avec un formulaire d'ajout.
Encore une fois ça dépend du langage, il faut réaliser les connexions vers la base de données et connaître quand même ce langage mais ça on ne pourra pas le faire à ta place.
Voilà bon courage !
Ca dépend des langages utilisés mais sinon ce sont des opérations de base donc oui c'est tout à fait faisable.
Tu as un formulaire, c'est très bien. Dans ce formulaire tu définis la propriété "action" avec le nom d'un script srveur (par exemple recherche_ou_ajout.php). Et dans ce fichier tu récupères la donnée envoyée par le formulaire : Si la "method" (c'est le nom de l'attribut) du formulaire était "get" tu fais $element = $_GET['id_du_champ']. (enfin ça dépend du langage utilisé).
Ensuite tu fais la requête vers la base de données au moyen des fonctions fournies par le langage (par exemple mysql_query('select * from matable where element=\'$element\'');). Si le nombre de lignes retourné par la requête est supérieur ou égal à 1, la valeur existe. Sinon (0) la valeur n'existe pas et il te suffira de générer le code HTML avec un formulaire d'ajout.
Encore une fois ça dépend du langage, il faut réaliser les connexions vers la base de données et connaître quand même ce langage mais ça on ne pourra pas le faire à ta place.
Voilà bon courage !
Yop !
Ah ben en fait PHP fait office d'interface pour stocker les données en base de données. MySQL seul ne te permettra pas d'interagir avec un formulaire, par contre je n'ai jamais touché à Perl.
Tu as bien saisi l'idée que j'ai transcrite mais je constate une petite erreur dans ton code :
if($res=0)
Si tu fais ça, ça veut dire que tu affectes la valeur 0 à ta variable $res. A mon sens, le signe de comparaison pour une égalité est == (un double égal). Par contre si tu veux réellement être propre, ne fais pas un deuxième if qui dépend du premier mais mets plutôt une condition de type "sinon" :
Pour ce qui est de récupérer les valeurs des champs de ta requête select (quand tu fais $req = mysql_query($sql)) il suffit d'utiliser la fonction mysql_fetch_array($req) qui prend en argument la variable qui contient le résultat de l'exécution de ta requête. A chaque rappel, c'est le tuple suivant qui va être traité (à mettre donc dans une boucle).
Ah ben en fait PHP fait office d'interface pour stocker les données en base de données. MySQL seul ne te permettra pas d'interagir avec un formulaire, par contre je n'ai jamais touché à Perl.
Tu as bien saisi l'idée que j'ai transcrite mais je constate une petite erreur dans ton code :
if($res=0)
Si tu fais ça, ça veut dire que tu affectes la valeur 0 à ta variable $res. A mon sens, le signe de comparaison pour une égalité est == (un double égal). Par contre si tu veux réellement être propre, ne fais pas un deuxième if qui dépend du premier mais mets plutôt une condition de type "sinon" :
if($res >= 1) ... else // Ici c'est certain que $res sera plus petit que 1. ..
Pour ce qui est de récupérer les valeurs des champs de ta requête select (quand tu fais $req = mysql_query($sql)) il suffit d'utiliser la fonction mysql_fetch_array($req) qui prend en argument la variable qui contient le résultat de l'exécution de ta requête. A chaque rappel, c'est le tuple suivant qui va être traité (à mettre donc dans une boucle).
Merci de ta réponse...mais il y a certain point que je ne comprend pas et du coup j'ai quelques autres questions...
Je travaille sous unix, langage perl, SGBD MySQL et serveur Apache.
_Pour enregistrer les résultats d'un formulaire faut-il obligatoirement utiliser un script PHP? ne peut-on pas utiliser MySQL?
_ Dans mon script ajout.php :
1/ je récupère les donnée envoyée par le formulaire
2/je me connecte a ma base de donnée
3/je fais la requête vers cette base de données.
Ce que je veux c'est que si le si le complexe existe déjà alors on affiche les données correspondant a celui-ci; sinon l'utilisateur crée le complexe (en remplissant le formulaire) et les données associés a celui-ci. Une fois qu'il clique sur le bouton save ces données sont enregistrés. Ces données tapés sont désormais présente dans ma base de donnée.
#Si le nombre de lignes retourné par la requête est supérieur ou égal à 1, la valeur existe. Je veux l'affichage de ces éléments
#on regarde dans la table Complex de ma base de donnée base de donnée si le complexe existe déjà
$sql = "SELECT id FROM complex WHERE complex='$complex'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());#j'insère les infos du formulaire dans ma base de donnée
$res= mysql_num_rows($req);
if($res>= 1) // le complexe existe déjà, on affiche les données correspondant
{
<table border>
<tr> <th> complex_names </th> <th> subunit_number<th> subunit_name </th> <th <th> description </th> </th> </tr>
<tr> <td>… </td><td>… </td> </tr>
...ainsi de suite pour chaque nouvelle ligne...
</table>
echo 'AFFICHAGE DU TABLEAU ';#j'affiche les données correspondant au complexe
}
#Si le nombre de lignes retourné par la requête est de 0.Je veux que l'utilisateur puisse entrer les données correspondant a chaque champ et que celle-ci puisse être sauvegarder dans ma base de donnée (dans deux tables différentes).
if($res=0)
{
$sql = "INSERT INTO subunit (subunit-id,subunit-description ,subunit-name, subunit-number) VALUES('','$subunit-description' ,'$subunit-name', '$subunit-number')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on récupère le subunit-id qui vient d'être généré
$subunit-id = mysql_insert_id();
// ci-dessous on insère les infos dans complex
$sql = "INSERT INTO complex (id, complex_name) VALUES('','$complex_name')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
echo 'Vos infos on été sauvegardés.'; #on affiche le résultat pour l'utilisateur
mysql_close($db); // on ferme la connexion
?>
}