Projet Nouveau Monde (Hellenos)

Discussions sur le Projet Hellenos
 
AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

Partagez
 

 Les bases de la programmation

Aller en bas 
AuteurMessage
jimay
Programmeur modérateur
jimay

Nombre de messages : 143
Age : 32
Date d'inscription : 19/02/2007

Les bases de la programmation Empty
MessageSujet: Les bases de la programmation   Les bases de la programmation EmptyJeu 22 Fév 2007, 12:45

Bonjour à tous.

Voici un petit post pour les futurs programmeurs en herbe que vous êtes Les bases de la programmation 59753

Je vais essayer de définir ici les bases de la programmation PHP et MySQL (deux langages indispensables pour la réalisation d'un tel projet)


Déjà, pour les novices, la réponse à LA question: kezako php\MySQL?

php est un langage interprété par un serveur, et qui renvoie à votre navigateur des informations intérprétables afin de vous afficher une page Web.
Quand à MySQL, il sagit en fait d'une base de donnée. Où l'on peut stocker des tas d'informations.

Le lien entre php et SQL est assez développé si bien qu'on peut interroger une base de donnée grâce à une requete écrite en SQL et utiliser l'information retournée dans du code php.




Très bien, pour les courageux; c'est partis, on se lance.


Tout d'abord pour bien coder, il faut de bons outils:
je ne sais pas si ceux que j'utilise sont les meilleurs, mais ils me suffisent pour ce que je fais.
- un éditeur, bah oui, c'est la base. Personellement j'utilise notepad++ , il est simple et assez pratique.
- un serveur, et oui, je vous l'avais dit plus haut, le code php est interprété par un serveur, il faut donc en créer un.
- une base de donnée. logique ^^
Pour les deux derniers, je vous conseille d'installer WampServer, il simule un serveur et une base de donnée (j'abrègerais BD ou BDD)
- un navigateur Web, pour celà je vous conseille d'installer Firefox et Internet Explorer, en effet ce sont les deux plus répandus et il est important de tester le site sur les deux.


Voilà, maintenant que vous êtes équipés, lançons nous.
Revenir en haut Aller en bas
http://hellenos.free.fr
jimay
Programmeur modérateur
jimay

Nombre de messages : 143
Age : 32
Date d'inscription : 19/02/2007

Les bases de la programmation Empty
MessageSujet: Re: Les bases de la programmation   Les bases de la programmation EmptyJeu 22 Fév 2007, 12:46

Comment utiliser cette chose que tu nous a fait installer: Wamp ?

tout d'abord il faut le lancer, une fois ceci fait, il devrait y avoir une nouvelle petite icone à coté de votre horloge.
C'est ça wamp!

un click gauche sur cette icone vous offre tout un tas d'actions possibles.


localhost ......: cliquer ici pour naviguer dans le site que vous allez créer; il faut toujours passer par ce lien, et ne jamais ouvrir une page directement en double cliquant sur le fichier, sans ça le serveur n'interprétera pas votre code php.

phpmyadmin .....: C'est un utilitaire très pratique pour la gestion d'une base de donnée. Il vous permet de créer, de modifier et de remplir une base très simplement.

sqlitemanager ..: idem mais je ne l'ai jamais utilisé.

wwwdirectory ...: c'est dans ce dossier qu'il faut créer votre site. Il doit au minimum y avoir une page index.html OU index.php C'est cette page que le serveur chargera au lancement.


Pour le reste, je n'ai presque jamais eu à les utiliser alors je ne vais pas prendre le temps de toutes les détailler.

arrivé à ce niveau vous connaissez déjà assez de chose pour vous lancer


Dernière édition par le Jeu 22 Fév 2007, 13:02, édité 2 fois
Revenir en haut Aller en bas
http://hellenos.free.fr
jimay
Programmeur modérateur
jimay

Nombre de messages : 143
Age : 32
Date d'inscription : 19/02/2007

Les bases de la programmation Empty
MessageSujet: Re: Les bases de la programmation   Les bases de la programmation EmptyJeu 22 Fév 2007, 19:02

1ere partie : MySQL

Le plus simple pour apprendre, je pense, est de voir un exemple et de pratiquer en même temps.

Je vais donc vous montrer comment créer votre premiere base de donnée, et ensuite on fera un ptit site en php pour voir comment on peut l'utiliser.

- lancer phpmyadmin; c'est aussi fesable en ligne de commandes, je ferais ptet un ptit post pour montrer cette possibilité plus tard.
- donner un nom à votre base et cliquer sur 'Créer'; et voilà votre premiere base est créee ^^

Il est temps d'apporter des précisions sur les bases de donnée.

Une base de donnée est constituée de tables (un tableau en fait) , et dans une table, chaque ligne correspond à un enregistrement.

Pour un premier exemple nous allons créer une table 'PERSONNE' contenant un numéro, un nom, un prénom, et un numéro de bureau.
Ainsi qu'une autre 'BUREAU' contenant un numéro, une désignation.


Les deux numéros sont ce qu'on appelle des clefs primaires; à partir d'un numéro de persone, on peut connaitre un nom, un prénom et un numéro de bureau.

Donc nous allons créer nos tables:
tout simplement on donne le nom: PERSONNE et le nombre de champs: 4

Après ça, on nous demande de préciser les champs:
pour le premier:
- nom: id_personne (id pour identifiant)
- type: INT ou BIGINT (suivant la taille que notre base aura) ici on peut choisir INT, ca suffira pour notre exemple.
- Taille: inutilisé pour les INT
- Interclassement: laisser vide
- Attribut: on peut mettre unsigned (car il n'y aura pas de nombres négatifs) mais ce n'est pas obligatoire
- NULL : je conseille de mettre NOT NULL (ce champ est obligatoire (non null ^^ ))
- Defaut : pas de valeur par défault donc laisser vide
- Extra : Auto_increment
- Cocher la case clef primaire (car ici il sagit de l'identifiant de notre personne)

Deuxième champ :
- nom : nom
- type : varchar
- taille : 20
- interclassement : ''
- Attribut : ''
- Null : notnull
- defaut : ''
- Extra : ''
- laisser --- coché

pour le troisième je vous laisse faire Les bases de la programmation 537283

Quand au dernier nous allons tout laisser vide, ce qui nous permettra de voir la modification de table plus tard.
Cliquer sur 'Sauvegarder' pour créer la table.

Il faut donc maintenant créer la table BUREAU
Cliquer sur le nom de votre base de donnée dans la colonne de gauche puis créer la table BUREAU avec 2 champs
je ne vais pas détailler ici toutes les colonnes; je vous guide juste et à vous de jouer Les bases de la programmation 59753

- pour le numéro de bureau, il sagit d'un entier non signé (pas négatif) que l'on peut auto-incrémenter suivant le cas, et qui serà ici l'identifiant de notre table.
- pour la désignation, nous allons permettre de mettre une longue phrase, nous allons donc utiliser le type TEXT.

Cliquer sur 'Sauvegarder' pour terminer la création.


Et voilà vous avez créé votre première base de donnée.

Haaa, mais suis-je bête ? ( qui à dit "Oui" ? )
nous avons oublié de terminer la table PERSONNE.

Cliquer donc sur son nom dans la colonne de gauche puis sur l'onglet Strucutre.
Hooo bah non, il n'y a pas de champ à modifier. Pour pouvoir mettre notre champ numéro de bureau, il faut donc ajouter 1 champ en fin de table apres le prénom.

Bizarement on sent qu'il y a un lien entre la table PERSONNE et BUREAU... tiens, ça serait pas le numéro de bureau par hasard?


Donc, pour pouvoir relier les deux tables, il faut rajouter le champ num_bureau dans la table PERSONNE avec les mêmes attributs que dans la table BUREAU sauf qu'ici il ne sagit pas d'une clef primaire.

Ne pas oublier de sauvegarder.


Cette fois, ca y est la BDD est prête, il ne reste plus qu'à l'utiliser.

On va voir ça dans la deuxième partie du tuto: Php


Dernière édition par le Jeu 22 Fév 2007, 23:44, édité 1 fois
Revenir en haut Aller en bas
http://hellenos.free.fr
jimay
Programmeur modérateur
jimay

Nombre de messages : 143
Age : 32
Date d'inscription : 19/02/2007

Les bases de la programmation Empty
MessageSujet: Re: Les bases de la programmation   Les bases de la programmation EmptyVen 23 Fév 2007, 09:21

Nous voilà dans une partie trèsss importante de l'exploration php/MySQL

Je ne pense pas pouvoir vous présenter en détail tout ce qu'on peut faire avec php; ce n'est pas le but de ce tuto et d'autres cours très bien fait le feront à ma place http://www.siteduzero.com/tuto-3-4-0-un-site-dynamique-avec-php.html
et vous trouverez ici toutes les fonctions SQL http://sqlpro.developpez.com/cours/sqlaz/fonctions/
Non, ici je vais juste donner les bases des bases et un petit exemple que vous ferez en même temps que moi pour pratiquer Les bases de la programmation 59753


avant de commencer je vous conseille de trouver sur le net la documentation Nexen. Celle-ci contient toutes les fonctions utiles en php. Vous serez souvent amené à la consulter et c'est normal Les bases de la programmation 59753 .

Première chose à faire: créer notre page d'index.
Pour celà allez dans le dossier www de wamp. A l'intérieur de ce dossier créer un fichier texte que vous renommez en 'index.php' ( /!\ pour les utilisateurs de windows XP vérifiez que vous affichez bien les extesions des fichiers. Pour ce faire allez dans Outils -> Options -> Affichage -> décodher 'Masquer les extensions de fichiers dont le type est connu')

Puis lancez Notepad++ (ou tout autre éditeur) et ouvrez ce fichier index.php
Vous commencez donc avec une feuille vierge. Je sais qu'il y a des éditeurs tel que Webexpert qui 'pondent' un peu de code automatiquement mais je ne les ai jamais trouvé plus utiles que ça. à vous de vous faire une opinion.

Bien commençons donc; le code que je vais vous présenter ici ne sera pas complet au niveau des normes HTML mais tout ce qu'on veut pour le moment c'est pouvoir utiliser une base de donnée alors...


** si dans la suite du tuto j'écris quelquechose apres // ou entre /* */ ce sont des commentaires; n'hésitez pas à en mettre un peu partout dans votre code, ils deviennent vite indispensables.

Tout d'abord il faut dire au serveur qui va lire le fichier que ce qu'il est en train de voir est du php.
pour celà il faudra toujours mettre votre code php entre des balise <?php /* mon code ici*/ ?>



commençons par le commencement: la conection à une BDD


$HOST est une variable qui devra contenir l'adresse où est installée notre base de donnée
$USER est un nom d'utilisateur qui a acces à cette base
$PASS est comme vous l'aurez deviné le mot de passe.

Code:

   $HOST = "localhost";  // la base tourne grâce à wamp, elle est donc en local
   $USER = "ROOT";         // c'est l'utilisateur par défaut créé par wamp
   $PASS = "";         // il ne possède pas de mot de passe

   if($connexion=mysql_connect($HOST,$USER,$PASS))
   {
      
      //conexion reussie à la BDD
      
      $NAME = "test";  // $NAME contient le nom de votre base de donnée; pour moi c'est test.
      
      if($base=mysql_select_db($NAME))
      {
         // connexion reussie à la base de donnée test
         // c'est ici que nous ferons des requetes sur notre base.
      }
      else
      {
         //erreur d'accès à la base
         mysql_close($connexion);    // ici on a réussi à se connecter au serveur MySQL mais on a pas réussi à ouvrir la base
      }   
   }
   else
   {
      //erreur de conexion à la base   
   }


Normalement, gràce à ce code, nous pouvons nous connecter à la BDD que nous venons de créer.
Il faudrait maintenant que nous la remplissions cette base ^^

Il faut donc maintenant apprendre les bases des requetes SQL:

les requetes sont des (plus ou moins) courtes phrases qui ordonnent une action sur une base de donnée.

Les trois plus courantes sont:
    - INSERT qui permet d'ajouter des entrées dans une table
    - SELECT qui permet de retrouver des informations
    - UPDATE qui permet de modifier un enregistrement


voyons maintenant les attributs de ces actions

    - INSERT INTO 'le nom de la table' VALUES( 'et ici les valeurs que nous voulons ajouter');
      par exemple pour ajouter un employé dans notre table PERSONNE il faudrait écrire:
      INSERT INTO PERSONNE VALUES('', 'Dupond', 'Michel', 1);


    le '' vide est pour le champ id_personne qui est en incrémentation automatique; et il faut aussi remarquer que je met des ' pour les chaines de caractere et rien pour les entiers.


    - SELECT 'le nom des champs que l'on veut' FROM 'les noms des tables concernées' WHERE 'ici les conditions sur la requete'
    je pense que plusieurs exemples sont nécessaires:

      si je veux connaitre le nom de toutes les personnes qu'il y a dans ma table PERSONNE je ferais:
      SELECT nom FROM PERSONNE;

      si je veux connaitre le numéro des personnes nommées 'Dupont'
      SELECT id_personne FROM PERSONNE WHERE nom='Dupont';

      si je veux connaitre dans quel bureau travaille le salarié numéro 4
      SELECT num_bureau FROM PERSONNE WHERE id_personne=4

      et enfin, si je veux connaitre la désignation du bureau de la personne numéro 3 OU prénommée Jean
      SELECT designation FROM PERSONNE, BUREAU WHERE id_personne=3 OR prenom='Jean';




    - UPDATE 'le nom de la table' SET 'le nom du cham = la nouvelle valeur' WHERE 'quel enregistrement modifier?'
      si je veux modifier l'enregistrement que je viens de créer avec INSERT
      UPDATE test SET nom='Jean', bureau=4 WHERE id_personne=1;


voilà en gros ce que permet le SQL. Bien sûr il possède des fonctionnalités bien plus poussée qui permettent de trier les résultats, de faire des modifications sur les tables, etc... mais vous trouverez tout ce qui vous manque sur le net Les bases de la programmation 59753



Bon maintenant que l'on sait, en gros, faire une requete SQL komenkonfé pour l'éxécuter?

Hé bien en fait c'est pas trop compliqué, il suffit de faire appel à la jolie fonction mysql_query() (regardez dans la doc Nexen pour plus de détails)

Concrètement qu'est ce que ça donne ?

Si on reprend notre joli code; il faut écrire ce qui suit à l'endroit où il faut, c'est à dire là où on réussi à se connecter à notre BDD.

Code:


$requete = "INSERT INTO PERSONNE VALUES('', 'Dupond', 'Michel', 1)" ;

$resultat = mysql_query( $requete );  // j'aurais pû écrire directement la requete dans la fonction mais je ne trouve pas ça très lisible.


Normalement si tout c'est bien passé nous avons enregistré un utilisateur dans notre base. Attention, pour le moment, à chaque fois que vous chargerez cette page vous crérez un enregistrement alors doucement avec F5 ^^

Je vous propose de faire une petite requete pour voir si tout est bien enregistré puis nous afficherons le tout.

Code:


$requete = " SELECT * FROM PERSONNE WHERE id_personne=1 "; // le * correspond à tous les champs

$resultat = mysql_query( $requete );

echo( $resultat );


Normalement, si tout va bien jusque là, ça devrais vous afficher une erreur à l'éxecution :p

En effet, la fonction mysql_query retourne un résultat mais qui n'est pas mis en forme pour l'affichage ou le traitement.
Il faut pour celà utiliser la fonction mysql_fetch_row()

Code:


// à la place du echo( $resultat ) mettre

$tableau = mysql_fetch_row( $resultat );

echo( $tableau[0] );
echo( $tableau[1] );
echo( $tableau[2] );
echo( $tableau[3] );



Et voilà, vous avez fait vos premières requetes en SQL.


    Dernière édition par le Dim 25 Fév 2007, 10:48, édité 1 fois
    Revenir en haut Aller en bas
    http://hellenos.free.fr
    Bebejedi
    Invité



    Les bases de la programmation Empty
    MessageSujet: Re: Les bases de la programmation   Les bases de la programmation EmptyVen 23 Fév 2007, 13:48

    Petite question : est ce que le C/C+ peut nous servir dans le projet ?
    Revenir en haut Aller en bas
    Théo
    Administrateur
    Théo

    Nombre de messages : 407
    Age : 32
    Localisation : Mycènes
    Date d'inscription : 05/07/2006

    Les bases de la programmation Empty
    MessageSujet: Re: Les bases de la programmation   Les bases de la programmation EmptyVen 23 Fév 2007, 15:05

    Je laisse répondre le programmateur

    _________________
    § Admin & développeur du projet §
    Revenir en haut Aller en bas
    https://projet-nouveau-monde.actifforum.com
    jimay
    Programmeur modérateur
    jimay

    Nombre de messages : 143
    Age : 32
    Date d'inscription : 19/02/2007

    Les bases de la programmation Empty
    MessageSujet: Re: Les bases de la programmation   Les bases de la programmation EmptyVen 23 Fév 2007, 21:08

    Je ne pense pas que le C, C++ puisse nous être utile, je pense que grâce au php on devrait avoir la possibilité de tout faire.

    PS: on ne dit pas programatteur mais programeur :p le premier c'est ce qu'il y a dans les machines à laver ou les fours :D
    Revenir en haut Aller en bas
    http://hellenos.free.fr
    Scofield
    Programmeur modérateur
    Scofield

    Nombre de messages : 155
    Date d'inscription : 14/10/2007

    Les bases de la programmation Empty
    MessageSujet: Re: Les bases de la programmation   Les bases de la programmation EmptyDim 14 Oct 2007, 17:32

    et on fait comment si on a un macintosh os x
    Revenir en haut Aller en bas
    Contenu sponsorisé




    Les bases de la programmation Empty
    MessageSujet: Re: Les bases de la programmation   Les bases de la programmation Empty

    Revenir en haut Aller en bas
     
    Les bases de la programmation
    Revenir en haut 
    Page 1 sur 1

    Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
    Projet Nouveau Monde (Hellenos) :: Général :: Foire Aux Questions-
    Sauter vers: