logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-installer-mysql-creer-une-bdd-pour-un-site-en-php-objet [24/06/2016 10:35]
Hypathie [Utilisation]
utilisateurs:hypathie:tutos:creer-son-site-web-en-php-_-installer-mysql-creer-une-bdd-pour-un-site-en-php-objet [04/08/2016 09:42]
Hypathie [Utilisation]
Ligne 16: Ligne 16:
 ===== Utilisation ===== ===== Utilisation =====
  
-====Base de données, table login ====+====Base de données, table membre====
 ===On crée la base de données === ===On crée la base de données ===
  
Ligne 23: Ligne 23:
 <code user>​./​creerMysqlBDDetUser.sh essaiLogin essaiLogin <​motDePasse></​code>​ <code user>​./​creerMysqlBDDetUser.sh essaiLogin essaiLogin <​motDePasse></​code>​
  
-=== Création ​de la table login ===+=== Création ​des tables membre et login===
  
 <code sql> <code sql>
 +#-- fichier : /​home/​$user/​createTableMembreLogin.sql
 USE essaiLogin; USE essaiLogin;
 + 
 DROP TABLE IF EXISTS `login`; DROP TABLE IF EXISTS `login`;
 + 
 +CREATE TABLE IF NOT EXISTS login(
 +  login_id int NOT NULL AUTO_INCREMENT,​
 +  pseudo VARCHAR(20) NOT NULL,
 +  motPasse VARCHAR(100) NOT NULL,
 +  cle VARCHAR(50) NULL,
 +  actif TINYINT(1) NULL,
 +  mail VARCHAR(50) NOT NULL,
 +  lastConnect TIMESTAMP,
 +  PRIMARY KEY  (login_id),
 +  UNIQUE KEY username (pseudo)
 +)ENGINE=InnoDB DEFAULT CHARSET=utf8;​
  
-CREATE TABLE IF NOT EXISTS ​login + 
-  ​user_id ​int(10UNSIGNED ​NOT NULL AUTO_INCREMENT+DROP TABLE IF EXISTS `membre`; 
-  ​username varchar(20) NOT NULL, +  
-  ​password varchar(100) NOT NULL, +CREATE TABLE IF NOT EXISTS ​membre
-  PRIMARY KEY  (user_id), +  ​membre_id ​int NOT NULL AUTO_INCREMENT,​ 
-  ​UNIQUE ​KEY username ​(username)+  prenom VARCHAR(50) NOT NULL, 
 +  ​nom VARCHAR(50) NOT NULL, 
 +  ​mail VARCHAR(100) NOT NULL, 
 +  isAdmin tinyint(1) NOT NULL DEFAULT 0, 
 +  dateInscription TIMESTAMP DEFAULT CURRENT_TIMESTAMP(),​ 
 +  dateModif TIMESTAMP,​ 
 +  idLogin int NOT NULL, 
 +  PRIMARY KEY  (membre_id), 
 +  ​CONSTRAINT FK_login FOREIGN ​KEY(`idLogin`) REFERENCES login(`login_id`)
 )ENGINE=InnoDB DEFAULT CHARSET=utf8;​ )ENGINE=InnoDB DEFAULT CHARSET=utf8;​
 +
 </​code>​ </​code>​
 +
 +<code user>​mysql -uessaiLogin -p <​createTableMembreLogin.sql</​code>​
  
 === Quelques insertions pour les tests=== === Quelques insertions pour les tests===
  
 <code sql> <code sql>
 +#--fichier : /​home/​$user/​insertTableMembreLogin.sql
 USE essaiLogin; USE essaiLogin;
    
 +SET FOREIGN_KEY_CHECKS=0;​
 TRUNCATE `login`; TRUNCATE `login`;
 +SET FOREIGN_KEY_CHECKS=1;​
 DELETE FROM `login`; DELETE FROM `login`;
 + 
 +INSERT INTO login(pseudo,​ motPasse) VALUES ​
 +('​admin',​ MD5('​adminadmin'​)),​
 +('​toto',​ MD5('​totototo'​));​
 +
 +SET FOREIGN_KEY_CHECKS=0;​
 +TRUNCATE `membre`;
 +DELETE FROM `membre`;
 +
 + 
 +INSERT INTO membre(prenom,​ nom, mail, isAdmin, dateInscription,​ idLogin) VALUES ​
 +('​admin',​ '​Admin',​ '​admin@admin.fr',​ 1, now(), 1),
 +('​toto',​ '​toto',​ '​toto@toto.fr',​ 0, now(), 2);
  
-INSERT INTO login (username, password) VALUES ​ 
-('​test',​ MD5('​pass'​)),​ 
-('​toto',​MD5('​toto'​));​ 
 </​code>​ </​code>​
  
-===On vérifie ===+<code user>​mysql -uessaiLogin -p <​insertTableMembreLogin.sql</​code>​
  
 +<note tip>
 +  * La ligne ''​isAdmin tinyint(1)NOT NULL DEFAULT 0,''​ \\ signifie que le champs est rempli par défaut avec la valeur ''​FALSE''​.\\ La valeur ''​TRUE''​ sera ''​1''​.
 +  * Voir : http://​dev.mysql.com/​doc/​refman/​5.7/​en/​numeric-type-overview.html
 +<​code>​BOOL,​ BOOLEAN
 +
 +These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true</​code>​
 +</​note>​
 +
 +  * Ce qui donne :
 <code user>​mysql -uessaiLogin -p essaiLogin -e "​select * from login;"</​code>​ <code user>​mysql -uessaiLogin -p essaiLogin -e "​select * from login;"</​code>​
 +<​code>​
 +Enter password: ​
 ++----------+--------+----------------------------------+
 +| login_id | pseudo | motPasse ​                        |
 ++----------+--------+----------------------------------+
 +|        1 | pseudo | 335368c4ed30a8f0f3b3919a2dfade2a |
 +|        2 | toto   | c33ca5e7eae116138d1d1b61158d58f9 |
 +|        3 | admin  | f6fdffe48c908deb0f4c3bd36c032e72 |
 ++----------+--------+----------------------------------+
 +
 +</​code>​
 +
  
 +<code user>​mysql -uessaiLogin -p essaiLogin -e "​select * from membre;"</​code>​
 <​code>​ <​code>​
 Enter password: ​ Enter password: ​
-+---------+----------+----------------------------------+ ++-----------+--------+-------+----------------+---------+---------------------+---------------------+---------+ 
-user_id ​username ​password ​                        +membre_id ​prenom ​nom   | mail           | isAdmin | dateInscription ​    | dateModif ​          | idLogin ​
-+---------+----------+----------------------------------+ ++-----------+--------+-------+----------------+---------+---------------------+---------------------+---------+ 
-      ​1 | test     1a1dc91c907325c69271ddf0c944bc72 ​| +        ​1 | prenom ​nom   mail@mail.fr ​  |       0 | 2016-06-30 10:09:18 | 0000-00-00 00:00:00 |       1 | 
-|       2 | toto     ​f71dbe52628a3f83a77ab494817525c6 ​+|         2 | toto   ​toto  | toto@toto.fr ​  ​| ​      0 | 2016-06-30 10:09:18 | 0000-00-00 00:00:00 |       2 | 
-+---------+----------+----------------------------------++|         3 | admin  | Admin | admin@admin.fr |       1 | 2016-06-30 10:09:18 | 0000-00-00 00:00:00 |       ​3 ​
 ++-----------+--------+-------+----------------+---------+---------------------+---------------------+---------+
 </​code>​ </​code>​
 +
 +<​note>​
 +**Remarque sur les dates :**
 +
 +Pour le champ ''​dateModif'',​ si on avait choisi le type ''​DATE''​ à la place de ''​TIMESTAMP''​
 +
 +<​code>​
 +CREATE TABLE IF NOT EXISTS membre(
 +<...>
 +  dateInscription TIMESTAMP DEFAULT CURRENT_TIMESTAMP,​
 +  dateModif DATE,
 +<...>
 +)ENGINE=InnoDB DEFAULT CHARSET=utf8;​
 +</​code>​
 +
 +On aurait pu modifier la date seulement ​
 +
 +  * avec la fonction mysql ''​now()''​ :
 +
 +<​code>​UPDATE `membre` SET `dateModif`=NOW() WHERE `pseudo`='​admin';</​code>​
 +
 +  * ou avec la fonction mysql ''​CURRENT_TIMESTAMP()''​ :
 +
 +
 +<​code>​UPDATE `membre` SET `dateModif`=CURRENT_TIMESTAMP() WHERE `pseudo`='​admin';</​code>​
 +
 +  * qui donneraient ce résultat :
 +
 +<​code>​select pseudo, dateModif from membre where pseudo='​admin';</​code>​
 +
 +<​code>​
 ++-------+------------+
 +| pseudo | dateModif ​ |
 ++-------+------------+
 +| admin | 2016-06-24 |
 ++-------+------------+
 +
 +</​code>​
 +
 +</​note>​
utilisateurs/hypathie/tutos/creer-son-site-web-en-php-_-installer-mysql-creer-une-bdd-pour-un-site-en-php-objet.txt · Dernière modification: 01/09/2016 10:48 par Hypathie

Pied de page des forums

Propulsé par FluxBB