Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

NodeBB

  1. Home
  2. Discussions communautaires
  3. Archives
  4. [Obsolète] Avant Propos {Partie 1/6}

[Obsolète] Avant Propos {Partie 1/6}

Scheduled Pinned Locked Moved Archives
16 Posts 5 Posters 5.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • AzadA
    AzadA
    Azad
    wrote on last edited by
    #7

    <p>Merci du temps passé à faire ce tutoriel.<br/>
    Très complet et illustré avec des images, +1 point de réputation.</p>

    Administrateur du forum.
    Contactez-moi par message privé ou par mail.

    1 Reply Last reply
    0
    • SoulalexS
      SoulalexS
      Soulalex
      wrote on last edited by
      #8

      <p>Je rajouterai la gestion de fichier en PHP mais je ne suis pas un expert 😕 Prochaine partie : PHP et MySQL 🙂 </p>

      Soulalex, Administrateur de Melinyel+ E-Mail : [email protected]+ GitHub : https://github.com/Soualex

      1 Reply Last reply
      0
      • SoulalexS
        SoulalexS
        Soulalex
        wrote on last edited by
        #9

        <p>Ajout de la gestion de fichier.</p>

        Soulalex, Administrateur de Melinyel+ E-Mail : [email protected]+ GitHub : https://github.com/Soualex

        1 Reply Last reply
        1
        • mars073M
          mars073M
          mars073
          wrote on last edited by
          #10

          <blockquote class="ipsQuote" data-cite="Soulalex" data-ipsquote="" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="4331" data-ipsquote-contentid="416" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1396435501" data-ipsquote-username="Soulalex"><div><p>
          Pour parcourir un tableau on pourrait utiliser la boucle for() mais celle-ci n'est pas très pratique donc je vous propose d'utiliser cette boucle : foreach() qui s'utilise comme ci-dessous :</p><pre class="ipsCode prettyprint lang-auto">
          <?php
          forach($member as $cle => $information)
          {
          echo $cle.' : '.$information;
          }
          /* Dans ce cas, j'ai récupéré la clé et son contenu. Vous pouvez très bien ne pas récupérer la clé en faisant comme ceci : forach($member as $information) */
          ?>
          </pre></div></blockquote>
          Bon tuto, manque un "e" dans ta boucle et j'aurais inversé le == et === 😛

          Aide à l'apprentissage et la réalisation pour des graphismes, des programmes, des sites ou autres.Signature aléatoire, proposez vous aussi une signature ici!

          1 Reply Last reply
          0
          • SoulalexS
            SoulalexS
            Soulalex
            wrote on last edited by
            #11

            <p>On va dire que je n'étais pas très bien réveillé quand j'ai fait cette partie du guide ^^ Pourquoi veux-tu inverser le == avec === ?</p>

            Soulalex, Administrateur de Melinyel+ E-Mail : [email protected]+ GitHub : https://github.com/Soualex

            1 Reply Last reply
            0
            • mars073M
              mars073M
              mars073
              wrote on last edited by
              #12

              <p>enfin peut-être que ça ma méthode d'interprétation dans ma tête qui est incorrect mais "équivalence" me fait plus penser à quelque chose qui se rapproche alors que le "===" est justement le comparateur qui vérifie jusqu'au type de variable car un 1 peut-être considéré comme true et 0 comme false.</p><p></p><p>> <a href="http://www.php.net/manual/fr/language.operators.comparison.php" rel="external nofollow">Opérateur de comparaison</a></p>

              Aide à l'apprentissage et la réalisation pour des graphismes, des programmes, des sites ou autres.Signature aléatoire, proposez vous aussi une signature ici!

              1 Reply Last reply
              0
              • AzadA
                AzadA
                Azad
                wrote on last edited by
                #13

                <p>+1 rep, du coup.</p>
                <p>Merci du partage. 🙂 </p>

                Administrateur du forum.
                Contactez-moi par message privé ou par mail.

                1 Reply Last reply
                0
                • F
                  F
                  Fantom3z
                  Modérateur spécialisé
                  wrote on last edited by
                  #14

                  <p>+1 explications claires et précises</p>

                  1 Reply Last reply
                  0
                  • SoulalexS
                    SoulalexS
                    Soulalex
                    wrote on last edited by
                    #15

                    <p style="text-align:center;"><img alt="c0d23d2d6769e53e24a1b3136c064577-php_log" src="<base_url>/applications/sslimageproxy/interface/image.php?url=http://www.php.net/manual/fr/images/c0d23d2d6769e53e24a1b3136c064577-php_logo.png"/></p>
                    <p style="text-align:center;"><em><span style="font-family:'times new roman', serif;"><span style="font-size:12pt;">Le PHP est un langage de programmation web permettant d'insérer du contenu dynamique dans vos pages. Ce langage offre de nombreuses possibilités telles que la gestion de news ou encore l'envoie d'email et combiné à une base de données, ses performances sont considérables.</span></span></em></p>
                    <p style="text-align:center;"> </p>
                    <p style="text-align:center;"> </p>
                    <p> </p>
                    <p><strong><span style="font-size:18px;">PRÉSENTATION DES BASES DE DONNÉES :</span></strong></p>
                    <p></p><hr/><p>Les bases de données vont vous permettre de stocker de nombreuses données et d'interagir avec simplement mais pour cela, il vous faut un minimum de connaissances que nous traiterons dans ce guide.</p>
                    <p style="text-align:center;"><img alt="bdd-images-basecs.gif" src="<base_url>/applications/sslimageproxy/interface/image.php?url=http://static.commentcamarche.net/www.commentcamarche.net/pictures/bdd-images-basecs.gif"/></p>
                    <p style="text-align:center;"><em>Interactions entre clients, serveur et base de données.</em></p>
                    <p></p><p>Les bases de données se divisent en tableaux (aussi appelés table) :</p>
                    <p style="text-align:center;"><a class="attach-link" href="/assets/uploads/ips/monthly_06_2014/post-5-0-05865600-1401961825.png"><img alt="post-5-0-05865600-1401961825_thumb.png" src="/assets/uploads/ips/monthly_06_2014/post-5-0-05865600-1401961825_thumb.png"/></a></p>
                    <p></p><p><span style="font-size:18px;"><strong>INTERACTIONS ENTRE PHP ET LES BASES DE DONNÉES :</strong></span></p>
                    <p></p><hr/><p><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;">Je vous conseille d'avoir <u>un minimum de connaissances sur le langage SQL</u> pour maîtriser les interactions mais les bases seront rappelées. Dans ce cours, nous utiliserons l’interface <strong>PDO </strong>pour accéder aux bases de données.</span></span></p>
                    <p> </p>
                    <p><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;">Tout d’abord, il nous faut établir une connexion avec le serveur MySQL (dans ce cas mais nous pouvons évidemment changer de <span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;"><abbr title="Système de Gestion de Base de Données">SGDB</abbr></span></span></span></span><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;">) :</span></span></p>
                    <pre class="ipsCode prettyprint">
                    try
                    {
                    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); // On ouvre une instance avec "PDO"

                            /*
                    
                            ** "host" : nom de domaine du serveur SQL,
                    
                            ** "dbname" : nom de la base de données,
                    
                            ** Dans les deux derniers arguments, vous devez entrer dans cette ordre votre nom d'utilisateur et votre mot de passe de votre BDD
                    
                            */
                    

                    }
                    catch(Exception $e)
                    {
                    die('Erreur : '.$e->getMessage());
                    }
                    </pre>
                    <p><span style="font-family:'times new roman', serif;"><span style="font-size:12pt;"><strong><span style="font-family:'courier new', courier, monospace;"><span style="color:rgb(255,165,0);">Note :</span></span></strong> <span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;">Ici j’ai utilisé une <strong>exception </strong>qui nous permettra de<u> récupérer les erreurs et de les afficher clairement à l’écran</u>.</span></span></span></span></p>
                    <p> </p>
                    <p><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;">Maintenant que notre connexion est établie, nous pouvons exécuter des requêtes sur notre base de données. Pour cela, vous avez le choix entre deux fonctions : </span></span></p>
                    <ul><li><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;"><span style="font-family:'courier new', courier, monospace;"><strong>PDO::query </strong></span><strong>:</strong> Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement.</span></span>
                    </li><li><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;"><span style="font-family:'courier new', courier, monospace;"><strong>PDOStatement::execute </strong></span><strong>:</strong> Exécute une requête précédemment préparée avec <span style="font-family:'courier new', courier, monospace;"><strong>PDO::prepare</strong></span> (Prépare une requête à l'exécution et retourne un objet).</span></span></li>
                    </ul><p> </p>
                    <p><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;">Ces fonctions permettent de récupérer des données maintenant, il nous faut quelques fonctions permettant d’agir sur ces données et aussi de les sécuriser pour éviter une injection SQL :</span></span></p>
                    <ul><li><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;"><span style="font-family:'courier new', courier, monospace;"><strong>PDOStatement::bindValue</strong></span><strong> :</strong> Associe une valeur à un paramètre.</span></span>
                    </li><li><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;"><span style="font-family:'courier new', courier, monospace;"><strong>PDOStatement::bindParam</strong></span><strong> :</strong> Lie un paramètre à un nom de variable spécifique.</span></span></li>
                    <li><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;"><span style="font-family:'courier new', courier, monospace;"><strong>PDOStatement::bindColumn</strong></span><strong> :</strong> Lie une colonne à une variable PHP.</span></span></li>
                    <li><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;"><span style="font-family:'courier new', courier, monospace;"><strong>PDOStatement::fetch</strong></span><strong><span style="font-family:'courier new', courier, monospace;"> </span>:</strong> Récupère la ligne suivante d'un jeu de résultats PDO.</span></span></li>
                    <li><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;"><span style="font-family:'courier new', courier, monospace;"><strong>PDOStatement::fetchAll</strong></span><strong> :</strong> Retourne un tableau contenant toutes les lignes du jeu d'enregistrements.</span></span></li>
                    <li><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;"><span style="font-family:'courier new', courier, monospace;"><strong>PDOStatement::fetchColumn</strong></span><strong> :</strong> Retourne une colonne depuis la ligne suivante d'un jeu de résultats.</span></span></li>
                    <li><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;"><span style="font-family:'courier new', courier, monospace;"><strong>PDOStatement::setFetchMode</strong></span><strong> :</strong> Définit le mode de récupération par défaut pour cette requête.</span></span></li>
                    <li><span style="font-size:14px;"><span style="font-family:'times new roman', times, serif;"><span style="font-family:'courier new', courier, monospace;"><strong>PDOStatement::rowCount</strong></span><strong> :</strong> Retourne le nombre de lignes affectées par le dernier appel à la fonction <span style="font-family:'courier new', courier, monospace;">PDOStatement::execute</span>.</span></span></li>
                    </ul><p> </p>
                    <p><span style="font-family:'times new roman', times, serif;">Maintenant, on va écrire une requête SQL mais avant quelques rappels :</span></p>
                    <ul><li><span style="font-family:'times new roman', times, serif;"><strong>Sélectionner des données :</strong> <span style="font-family:'courier new', courier, monospace;">« SELECT attribut_1, attribut_2 FROM nom_table »</span> (Pour sélectionner le tableau entier, remplacez les attributs par ).</span>
                    </li><li><span style="font-family:'times new roman', times, serif;"><strong>Créer une nouvelle ligne :</strong> <span style="font-family:'courier new', courier, monospace;">« INSERT INTO table_name(attribut_1, attribut_2) values(valeur_1, valeur_2) »</span>.</span></li>
                    <li><span style="font-family:'times new roman', times, serif;"><strong>Mise à jour d’une ligne :</strong> <span style="font-family:'courier new', courier, monospace;">« UPDATE nom_table SET attribut_1 = valeur_1, attribut_2 = valeur_2 »</span>.</span></li>
                    <li><span style="font-family:'times new roman', times, serif;"><strong>Suppression d’une ligne :</strong> <span style="font-family:'courier new', courier, monospace;">« DELETE FROM nom_table WHERE attribut = valeur »</span> <span style="font-size:14px;">(à noter que WHERE peut être utilisé avec n’importe quelle autre fonction vu précédemment)</span>.</span></li>
                    </ul><pre class="ipsCode prettyprint">
                    /
                    CONNEXION AU SERVEUR SQL ICI */

                    $query = $bdd->prepare('SELECT attributs FROM my_db WHERE attribut = :value'); // Préparation d'un requête de sélection (ici :value est un paramètre de la requête SQL qu’on va associer à une valeur ensuite)

                    $query->bindValue(':value', $value, \PDO::PARAM_STR); // On associe la valeur au paramètre (ce qui évite les injections SQL)

                    $query->execute(); // On exécute la requête

                    $data = $query->fetchAll(); // On associe à un tableau les résultats obtenus avec la requête

                    $query->closeCursor(); // On ferme notre requête
                    </pre>

                    Soulalex, Administrateur de Melinyel+ E-Mail : [email protected]+ GitHub : https://github.com/Soualex

                    1 Reply Last reply
                    1
                    • mars073M
                      mars073M
                      mars073
                      wrote on last edited by
                      #16

                      <p>Bon tuto pour apprendre les bases, j'aurais bien dit que l'utilisation de mysqli_ et mieux pour débuter mais ça donne de mauvaise habitude et les gens ne font pas attention aux failles après...</p><p>+1 Rep.</p>

                      Aide à l'apprentissage et la réalisation pour des graphismes, des programmes, des sites ou autres.Signature aléatoire, proposez vous aussi une signature ici!

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Login or register to search.
                      Powered by NodeBB Contributors
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups