Formulaire, compte utilisateurs et base de données !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire, compte utilisateurs et base de données !

par Starvin » 01 févr. 2006, 15:09

Je te remercis pour ton aide Van, j'ai appris des choses avec tes conseils, j'ai aussi réussit à afficher un élément de ma base de données sur ma page php avec notamment la balise "include" et avec une requête sql...

La je suis en train de poursuivre mon apprentissage notamment la creation d'un formulaire d'inscription lié avec une base de données...

merci en tout cas si j'ai un probleme je posterais içi... :wink:

par VaN » 25 janv. 2006, 18:30

Merci beaucoup pour tes instructions, par contre on m'a conseillé de mettre plutôt user_jeu_user_id et user_jeu_jeu_id à la place de user_id et jeu_id pour éviter des embrouilles lorsque je ferais des requêttes, t'en penses quoi...?
Effectivement, c'est peut etre plus prudent. En tout cas, c'est plus simple (meme si ça parait plus compliqué au premier abord). En effet, lorsque deux champs ont le meme nom dans une base de données, cela peut parfois declencher des erreurs, car le script ne saura pas lequel des deux tu voudras choisir, lorsque tu indiqueras le nom du champs. mais si ces champs sont dans des tables différentes, tu peux les différencier ainsi :
nom_de_la_table.nom_du_champ
Ce qui donnerai dans mon exemple :
users.user_id est différent de user_jeu.user_id

pour t'eviter d'avoir à specifier le nom de la table dans tes requetes, je te conseille effectivement de renommer les champs user_id et jeu_id de la table USER_JEU differement.

Concernant le back office, t'en es pas encore là. D'abord, il faudra que le front office marche (c'est à dire la partie visible par les utilisateurs)

désolé, je suis marfois long entre mes réponses, mais je suis au travail.
Si ça t'interesse, voici mon msn : [email protected]

Parles moi ce soir (à partir de 19h), si tu as envie que je t'explique quelques autres trucs, et que tu veux que je t'aide à faire demarrer le bousin : )

par Starvin » 25 janv. 2006, 17:06

Alors :

En tout tu as :
- 1 seule base de données
- 4 tables

USERS
user_id (INT) auto-increment, clé primaire
user_pseudo (TEXT)
user_mail (TEXT)

CONSOLES
console_id (INT) auto-increment, clé primaire
console_nom (TEXT)

JEUX
jeu_id (INT) auto-increment, clé primaire
jeu_console_id (INT)

USER_JEU
lien_id (INT) auto-increment, clé primaire
user_id (INT)
jeu_id(INT)

en GRAS, ce sont les noms des tables. en dessous, les noms des champs. je t'ai mis les type de chaque champ entre parentheses.
(INT = un chiffre entier, TEXT = format texte).
Les champs souligné sont ce que l'on appelle des clés primaires. il y'en a une par table, et c'est ce qui permet de différencier une ligne d'une autre ligne, dans ta table, car parmis plusieurs entrées, il se peut que certains de leurs champs aient la meme valeur. (exemple : deux utilisateurs dont le prénom est Jean). Mais le user_id, qui est l'identifiant de chaque personne, est unique. Le fait de le mettre en 'auto-increment' fait que ce chiffre va grandir de 1 à chaque nouvelle entrée :
1 | Jean | [email protected]
2 | Paul | [email protected]
3 | Jean | [email protected]

Bon ça c'est la base à savoir quand tu commences a travailler avec des bases de données. une fois que tu a tes 4 tables créées, avec leur champs respectifs, les clés primaires spécifiées, commence à les remplir avec des informations bidons, pour faire des tests.
Merci beaucoup pour tes instructions, par contre on m'a conseillé de mettre plutôt user_jeu_user_id et user_jeu_jeu_id à la place de user_id et jeu_id pour éviter des embrouilles lorsque je ferais des requêttes, t'en penses quoi...?

On m'a aussi conseillé par la suite de faire un dossier pour mes pages php et un alias sous easyphp, j'vois pas trop ce que c'est mais on verra par la suite...On m'a aussi parlé de l'interface admin backoffice pour mettre à jour mon site et ma base de donnée, mais je maitrise pas encore ça...

en tout cas c tres sympa de ta part de m'aider :wink:

par VaN » 25 janv. 2006, 16:13

Alors :

En tout tu as :
- 1 seule base de données
- 4 tables

USERS
user_id (INT) auto-increment, clé primaire
user_pseudo (TEXT)
user_mail (TEXT)

CONSOLES
console_id (INT) auto-increment, clé primaire
console_nom (TEXT)

JEUX
jeu_id (INT) auto-increment, clé primaire
jeu_console_id (INT)

USER_JEU
lien_id (INT) auto-increment, clé primaire
user_id (INT)
jeu_id(INT)

en GRAS, ce sont les noms des tables. en dessous, les noms des champs. je t'ai mis les type de chaque champ entre parentheses.
(INT = un chiffre entier, TEXT = format texte).
Les champs souligné sont ce que l'on appelle des clés primaires. il y'en a une par table, et c'est ce qui permet de différencier une ligne d'une autre ligne, dans ta table, car parmis plusieurs entrées, il se peut que certains de leurs champs aient la meme valeur. (exemple : deux utilisateurs dont le prénom est Jean). Mais le user_id, qui est l'identifiant de chaque personne, est unique. Le fait de le mettre en 'auto-increment' fait que ce chiffre va grandir de 1 à chaque nouvelle entrée :
1 | Jean | [email protected]
2 | Paul | [email protected]
3 | Jean | [email protected]

Bon ça c'est la base à savoir quand tu commences a travailler avec des bases de données. une fois que tu a tes 4 tables créées, avec leur champs respectifs, les clés primaires spécifiées, commence à les remplir avec des informations bidons, pour faire des tests.

par Starvin » 25 janv. 2006, 15:47


EDIT : je viens de lire que tu etais etait debutant.
Alors il faut que sous phpmysql, tu crées ces tables. Ainsi tu as :
- une table ou seront listés tes utilisateurs
- une table on seront listées les consoles
- une table ou seront listés les jeux, chacun etant lié à une console, grâce au champ 'jeu_console_id' (plusieurs jeux peuvent être liés à une meme console).
- une table user_jeu, où tu feras le lien entre un jeu et un utilisateur (en mettant un 'jeu_id', et le 'user_id' de la personne correspondante). De meme, un jeu peut etre lié à plusieurs utilisateurs, et un utilisateur à plusieurs jeux.
ok il me 4 tables alors, mais pour chaque je dois mettre combien de champs ? et quel type je dois mettre pour chaque champ ? Par exemple pour les utilisateurs et consoles je met "text" ? et pour les emails je met quoi comme valeurs ?

par Starvin » 25 janv. 2006, 15:23

as-tu deja programmé en PHP et en SQL ?
Si c'est le cas, cela devrait etre assez facile à mettre en place.
Si non, il va d'abord falloir que tu aprennes les bases de ces deux langages.

concernant l'architecture de la base de données, je verrai ça comme cela :

USERS
user_id
user_pseudo
user_mail

CONSOLES
console_id
console_nom

JEUX
jeu_id
jeu_console_id

USER_JEU
lien_id
user_id
jeu_id

Ou bien supprimer la table USER_JEU, et rentrer directement les jeu_id dans un champs 'jeux' de la table USERS, les jeu_id (si l'utilisateur possède plusieurs jeux) seront séparés par un '-' ou un ';' ou ce que tu veux.
J'ai deja taté un tout petit du php mais pour des bricoles comme la date, des petites choses, mais rien de bien consistant...Le sql je ne connais pas encore...

Concernant l'architecture de ta base, je dois faire 4 bases différentes ou c'est tout dans la même ?

Et que représente tes fameux user_id , console_id ect. ?
Dans ce que tu as mis qu'est ce qui correspond au champ, à la valeur ect.
Pardonne moi de te demander ces précisions, mais pour un débutant c'est chaud...merci :wink:

par VaN » 25 janv. 2006, 15:12

as-tu deja programmé en PHP et en SQL ?
Si c'est le cas, cela devrait etre assez facile à mettre en place.
Si non, il va d'abord falloir que tu aprennes les bases de ces deux langages.

concernant l'architecture de la base de données, je verrai ça comme cela :

USERS
user_id
user_pseudo
user_mail

CONSOLES
console_id
console_nom

JEUX
jeu_id
jeu_console_id

USER_JEU
lien_id
user_id
jeu_id

Ou bien supprimer la table USER_JEU, et rentrer directement les jeu_id dans un champs 'jeux' de la table USERS, les jeu_id (si l'utilisateur possède plusieurs jeux) seront séparés par un '-' ou un ';' ou ce que tu veux.

EDIT : je viens de lire que tu etais etait debutant.
Alors il faut que sous phpmysql, tu crées ces tables. Ainsi tu as :
- une table ou seront listés tes utilisateurs
- une table on seront listées les consoles
- une table ou seront listés les jeux, chacun etant lié à une console, grâce au champ 'jeu_console_id' (plusieurs jeux peuvent être liés à une meme console).
- une table user_jeu, où tu feras le lien entre un jeu et un utilisateur (en mettant un 'jeu_id', et le 'user_id' de la personne correspondante). De meme, un jeu peut etre lié à plusieurs utilisateurs, et un utilisateur à plusieurs jeux.

par Starvin » 25 janv. 2006, 13:47

je viens de lire ta breve explication, et une question me trotte ds la tete :

que ce passe t'il si plusieurs personnes inscrites possèdent sonic 1 sur megadrive ? les email de toutes ces personnes aparaissent ?

En gros, un jeu ne peut etre lié qu'a une seule personne ou plusieurs personnes ?
Plusieurs personnes...ça change forcément quelques choses dans la base de données je suppose ?
la ligne que tu nous indique elle doit etre inserée dans ton script php apres t etre connecte a ta base de données !
A quel endroit exactement ? dans le head ? le body ?

Merci :wink:

par VaN » 25 janv. 2006, 11:01

je viens de lire ta breve explication, et une question me trotte ds la tete :

que ce passe t'il si plusieurs personnes inscrites possèdent sonic 1 sur megadrive ? les email de toutes ces personnes aparaissent ?

En gros, un jeu ne peut etre lié qu'a une seule personne ou plusieurs personnes ?

par DarkBlue » 25 janv. 2006, 10:39

hello ,

Dans phpmydmin (ton image) , dans la fameuse case tu ne peux entrer que des 'ordres' sql tels : SELECT from ....where ....

la ligne que tu nous indique elle doit etre inserée dans ton script php apres t etre connecte a ta base de données !

par Starvin » 25 janv. 2006, 03:35

J'ai commencé à étudier les base de données et j'en suis à cette étape (lecture de données) comme on le voit sur le tuto à l'etape "faire une requête":

http://www.siteduzero.com/tuto-3-140-1- ... nnees.html

Il y est indiqué je dois rentrer une requête sous forme de code php :
<?php
$reponse = mysql_query("SELECT * FROM jeux_videos");
?>
mais je ne sais pas à quel endroit ou je dois mettre ce code, je l'ai mis à cet endroit en dessous de SELECT * FROM jeux_videos :

Image

mais j'ai eu une réponse d'erreur de mysql.

Il me semble que ce code doit s'inserer dans la page php mais je ne sais pas ou exactement, pourriez vous me l'indiquer ?

Désolé pour la question de newbie mais je débute soyez indulgent :oops:

Je précise que contrairement au tuto, je ne suis pas connecté à un hebergeur pour entrer dans ma base de données mais je suis en local avec easyphp... :wink:

Merci beaucoup j'attends vos réponse :wink:

par Starvin » 23 janv. 2006, 19:28

Hello,

Apparement (coté positif) ce que tu veux faire est assez basique !

Donc effectivement tu as besoin d un serveur et d un environement php , si tu est pressé prends easyphp , si tu as envie de te prendre (un petit peu ) la tete mais d avoir ce qu il te faut d'aplomb il faut installer ton environement a la main !

Ensuite va falloir que tu te mange quelques tutos sur les commandes sql (simple je te rassure) sur par exemple

www.phpdebutant.org

Ensuite si tu as besoiun d un oups de main en chemin nous sommes la !
Merci pour ton message et ton lien, je compte utiliser easyphp en effet...


Mon topic tiens toujours, j'attends vos conseils pour m'aider, merci bien :wink:

par DarkBlue » 23 janv. 2006, 19:19

Hello,

Apparement (coté positif) ce que tu veux faire est assez basique !

Donc effectivement tu as besoin d un serveur et d un environement php , si tu est pressé prends easyphp , si tu as envie de te prendre (un petit peu ) la tete mais d avoir ce qu il te faut d'aplomb il faut installer ton environement a la main !

Ensuite va falloir que tu te mange quelques tutos sur les commandes sql (simple je te rassure) sur par exemple

www.phpdebutant.org

Ensuite si tu as besoiun d un oups de main en chemin nous sommes la !

Formulaire, compte utilisateurs et base de données !

par Starvin » 23 janv. 2006, 19:03

Bonjour a tous !

Je fais appel à vos lumieres pour m'aider à réaliser un site avec du langage dynamique php, mon site propose un référencement de jeux videos auquels chaque jeux devra etre attribué un mail de celui qui le possède (les inscrits au site via le formulaire) je présente ce dont j'ai besoin pour réaliser mon site :

- J'ai besoin d'un systeme de formulaire d'inscription pour recueillir des informations :

* un pseudo
* un email
* et une liste de jeux (divisés en catégorie par console)

- J'ai besoin d'une base de données qui puissent recueillir les informations du formulaire (la liste des jeux et les email correspondants) et pouvoir les affichés directement sur le site...

Concrêtement imaginons un nouvel inscrit avec un formulaire de ce type :

pseudo : starvin
email : ******@yahoo.fr

Liste de jeux :

- megadrive : sonic 1
sonic 2

-supernintendo : mario 1
mario 2

ect. je n'aurais que 4/5 consoles à repertorier...

Et je voudrais que le nom du jeu (sonic 1 par exemple) se retrouve dans
la rubrique megadrive classé avec les autres jeux de cette même console, le tout par ordre alphabetique, avec affiché l'email du possesseur à coté du nom du jeu...

En gros c'est ce que je voudrais...

Je n'ai jamais fait de système de base de données et je dois maitriser ce concept pour un projet de site dans mes etudes qui se termine dans 2 mois, il me semble qu'on doit utiliser easyphp comme client/serveur pour tester son php et sa base de donnée mais j'aimerais qu'on me guide car je connais le html mais le php c'est nouveau pour moi...

Merci beaucoup