Dbs 2021-2022 : Différence entre versions

De Design numérique
Aller à : navigation, rechercher
(ajout diagram)
 
(6 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
== Sessions ==
 
== Sessions ==
 +
 +
===25/03===
 +
<syntaxhighlight lang="php">
 +
<?php
 +
    ini_set('display_errors', 1);
 +
    ini_set('display_startup_errors', 1);
 +
    error_reporting(E_ALL);
 +
 +
    $serverName = 'localhost';
 +
    $username = 'root';
 +
    $password = 'root';
 +
    $dbName = 'outils_erg';
 +
 +
    $db = new PDO("mysql:host=$serverName;dbname=$dbName", $username, $password);
 +
 +
   
 +
 +
    if(isset($_POST['formulaire'])){
 +
       
 +
        if($_POST['formulaire'] == 'personne'){
 +
       
 +
            $personName = $_POST['nom'];
 +
            $type = $_POST['type'];
 +
            $ordinateur = $_POST['ordi'];
 +
            $os = $_POST['os'];
 +
 +
            //INSERT INTO personne ('nom', 'type', 'ordinateur', 'os') VALUES ($personName, $type, $ordinateur, $os)
 +
           
 +
            $db->query("INSERT INTO personne (nom, type, ordinateur, os) VALUES ('$personName', '$type', '$ordinateur', '$os')");
 +
        }
 +
 +
        else if ($_POST['formulaire'] == 'cours'){
 +
            $coursName = $_POST['nom'];
 +
            $annee =  $_POST['annee'];
 +
            $db->query("INSERT INTO cours (nom, annee) VALUES ('$coursName', '$annee')");
 +
 +
        }
 +
        else if ($_POST['formulaire'] == 'logiciel'){
 +
            $logicielName = $_POST['nom'];
 +
           
 +
            $db->query("INSERT INTO logiciel (nom) VALUES ('$logicielName')");
 +
 +
        }
 +
        else if ($_POST['formulaire'] == 'liencours'){
 +
            $coursID = $_POST['cours'];
 +
            $personneID = $_POST['personne'];
 +
            //echo "INSERT INTO personne_cours(id_personne, id_cours) VALUES ('$personneID', '$coursID')";
 +
            $db->query("INSERT INTO personne_cours(id_personne, id_cours) VALUES ('$personneID', '$coursID')");
 +
 +
        }
 +
 +
 +
 +
 +
 +
 +
 +
   
 +
    }
 +
 +
 +
 +
    //récupérer une liste de toutes les personnes
 +
    $answer = $db->query("SELECT personne.id, personne.nom FROM personne");
 +
    $personnes = $answer->fetchAll(PDO::FETCH_ASSOC);
 +
 +
    //récupérer une liste de tous les cours
 +
    $answer = $db->query("SELECT cours.id, cours.nom FROM cours");
 +
    $cours = $answer->fetchAll(PDO::FETCH_ASSOC);
 +
 +
 +
 +
 +
  /* $answer = $db->query("SELECT personne.nom, commune.nom FROM personne JOIN commune ON personne.commune = commune.id WHERE commune.code = 1060");
 +
 +
  $answer = $db->query("SELECT personne.nom FROM personne JOIN personne_cours ON personne.id = personne_cours.id_personne JOIN cours ON personne_cours.id_cours = cours.id WHERE cours.annee = 'M1'");
 +
 +
 +
    $result = $answer->fetchAll(PDO::FETCH_ASSOC);
 +
 +
    print_r($result);
 +
*/
 +
 +
?>
 +
 +
<!doctype html>
 +
<html>
 +
 +
    <head>
 +
    </head>
 +
    <body>
 +
        <h2>Ajouter une personne</h2>
 +
        <form action="./" method="POST">
 +
            <input type="hidden" name="formulaire" value="personne">
 +
            <input name="nom" type="text" placeholder="nom">
 +
            <select name="type">
 +
                <option value="prof">prof</option>
 +
                <option value="étudiant.e">étudiant.e</option>
 +
                <option value="admin">admin</option>
 +
            </select>
 +
 +
            <input name="ordi" type="text" placeholder="ordinateur">
 +
            <input name="os" type="text" placeholder="système d'exploitation">
 +
            <input type="submit" value="envoyer">
 +
        </form>
 +
 +
        <h2>Ajouter un cours</h2>
 +
 +
        <form action="./" method="POST">
 +
        <input type="hidden" name="formulaire" value="cours">
 +
           
 +
            <input name="nom" type="text" placeholder="nom">
 +
            <input name="annee" type="text" placeholder="annee">
 +
            <input type="submit" value="envoyer">
 +
        </form>
 +
 +
        <h2>Ajouter un logiciel</h2>
 +
        <form action="./" method="POST">
 +
        <input type="hidden" name="formulaire" value="logiciel">
 +
           
 +
        <input name="nom" type="text" placeholder="nom">
 +
        <input type="submit" value="envoyer">
 +
        </form>
 +
 +
        <h2>Lier une personne à un cours</h2>
 +
        <form action="./" method="POST">
 +
        <input type="hidden" name="formulaire" value="liencours">
 +
        <select name="personne">
 +
<?php
 +
        foreach($personnes as $personne){
 +
            echo '<option value="'.$personne['id'].'">'.$personne['id'].' '.$personne['nom'].'</option>';
 +
           
 +
        }
 +
?>
 +
        </select>
 +
        <select name="cours">
 +
<?php
 +
        foreach($cours as $cour){
 +
            echo '<option value="'.$cour['id'].'">'.$cour['id'].' '.$cour['nom'].'</option>';
 +
           
 +
        }
 +
?>
 +
        </select>
 +
 +
        <input type="submit" value="envoyer">
 +
        </form>
 +
 +
 +
        <h2>Lier une personne à un logiciel</h2>
 +
 +
    </body>
 +
 +
</html>
 +
</syntaxhighlight>
 +
 +
=== 18/03 ===
 +
 +
[[Fichier:PLANCHE A3 base de données .jpg|vignette]]
 +
 +
Exemple de reqête SELECT avec PHP
 +
<syntaxhighlight lang="php">
 +
<?php
 +
    ini_set('display_errors', 1);
 +
    ini_set('display_startup_errors', 1);
 +
    error_reporting(E_ALL);
 +
 +
    $serverName = 'localhost';
 +
    $username = 'root';
 +
    $password = 'root';
 +
    $dbName = 'outils_erg';
 +
 +
    $db = new PDO("mysql:host=$serverName;dbname=$dbName", $username, $password);
 +
 +
  // $answer = $db->query("SELECT personne.nom, commune.nom FROM personne JOIN commune ON personne.commune = commune.id WHERE commune.code = 1060");
 +
 +
  $answer = $db->query("SELECT personne.nom FROM personne JOIN personne_cours ON personne.id = personne_cours.id_personne JOIN cours ON personne_cours.id_cours = cours.id WHERE cours.annee = 'M1'");
 +
 +
 +
    $result = $answer->fetchAll(PDO::FETCH_ASSOC);
 +
 +
    print_r($result);
 +
 +
 +
?>
 +
</syntaxhighlight>
 +
 +
 +
 +
 +
Exemple de connection à une db avec python
 +
 +
<syntaxhighlight lang="python">
 +
import pymysql
 +
 +
db = pymysql.connect(
 +
    host='localhost',
 +
    user='root',
 +
    password='root',
 +
    db='outils_erg'
 +
)
 +
 +
cur = db.cursor()
 +
 +
cur.execute("SELECT * FROM personne")
 +
 +
result = cur.fetchall()
 +
 +
print(result)
 +
 +
</syntaxhighlight>
 +
 +
=== 25/2 ===
 +
<syntaxhighlight lang="python">
 +
#1. pour faire des requêtes http
 +
import mechanize
 +
#2. transformer la réponse en structure html navigable
 +
import lxml.html
 +
#3. sélectionner les données qui nous intéressent avec un sélecteur css
 +
import cssselect
 +
 +
#https://www.meteo.be/fr/belgique
 +
 +
 +
 +
browser = mechanize.Browser()
 +
 +
browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0')]
 +
 +
browser.set_handle_robots(False)
 +
 +
data = browser.open('https://www.meteo.be/fr/belgique', timeout=10)
 +
 +
 +
#print(data.read())
 +
 +
source = data.read()
 +
 +
html = lxml.html.fromstring(source)
 +
 +
#.now-cast-pp__description
 +
 +
selecteurs = cssselect.parse('now-cast')
 +
#selecteurs = [objet cssselect]
 +
 +
selecteur = selecteurs[0]
 +
 +
chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)
 +
 +
resultats = html.xpath(chemin_xpath)
 +
 +
#print(resultats)
 +
for resultat in resultats:
 +
    print(resultat.get('title'))
 +
    print(resultat.text_content())
 +
</syntaxhighlight>
 +
  
 
=== 11/2 ===
 
=== 11/2 ===

Version actuelle datée du 25 mars 2022 à 15:02

Sessions

25/03

<?php
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);

    $serverName = 'localhost';
    $username = 'root';
    $password = 'root';
    $dbName = 'outils_erg';

    $db = new PDO("mysql:host=$serverName;dbname=$dbName", $username, $password);

    

    if(isset($_POST['formulaire'])){
        
        if($_POST['formulaire'] == 'personne'){
        
            $personName = $_POST['nom'];
            $type = $_POST['type'];
            $ordinateur = $_POST['ordi'];
            $os = $_POST['os'];

            //INSERT INTO personne ('nom', 'type', 'ordinateur', 'os') VALUES ($personName, $type, $ordinateur, $os)
            
            $db->query("INSERT INTO personne (nom, type, ordinateur, os) VALUES ('$personName', '$type', '$ordinateur', '$os')");
        }

        else if ($_POST['formulaire'] == 'cours'){
            $coursName = $_POST['nom'];
            $annee =  $_POST['annee'];
            $db->query("INSERT INTO cours (nom, annee) VALUES ('$coursName', '$annee')");

        }
        else if ($_POST['formulaire'] == 'logiciel'){
            $logicielName = $_POST['nom'];
            
            $db->query("INSERT INTO logiciel (nom) VALUES ('$logicielName')");

        }
        else if ($_POST['formulaire'] == 'liencours'){
            $coursID = $_POST['cours'];
            $personneID = $_POST['personne'];
            //echo "INSERT INTO personne_cours(id_personne, id_cours) VALUES ('$personneID', '$coursID')";
            $db->query("INSERT INTO personne_cours(id_personne, id_cours) VALUES ('$personneID', '$coursID')");

        }







    
    }



    //récupérer une liste de toutes les personnes
    $answer = $db->query("SELECT personne.id, personne.nom FROM personne");
    $personnes = $answer->fetchAll(PDO::FETCH_ASSOC);

    //récupérer une liste de tous les cours
    $answer = $db->query("SELECT cours.id, cours.nom FROM cours");
    $cours = $answer->fetchAll(PDO::FETCH_ASSOC);




   /* $answer = $db->query("SELECT personne.nom, commune.nom FROM personne JOIN commune ON personne.commune = commune.id WHERE commune.code = 1060");

   $answer = $db->query("SELECT personne.nom FROM personne JOIN personne_cours ON personne.id = personne_cours.id_personne JOIN cours ON personne_cours.id_cours = cours.id WHERE cours.annee = 'M1'");


    $result = $answer->fetchAll(PDO::FETCH_ASSOC);

    print_r($result);
*/

?>

<!doctype html>
<html>

    <head>
    </head>
    <body>
        <h2>Ajouter une personne</h2>
        <form action="./" method="POST">
            <input type="hidden" name="formulaire" value="personne">
            <input name="nom" type="text" placeholder="nom">
            <select name="type">
                <option value="prof">prof</option>
                <option value="étudiant.e">étudiant.e</option>
                <option value="admin">admin</option>
            </select>

            <input name="ordi" type="text" placeholder="ordinateur">
            <input name="os" type="text" placeholder="système d'exploitation">
            <input type="submit" value="envoyer">
        </form>

        <h2>Ajouter un cours</h2>

        <form action="./" method="POST">
        <input type="hidden" name="formulaire" value="cours">
            
            <input name="nom" type="text" placeholder="nom">
            <input name="annee" type="text" placeholder="annee">
            <input type="submit" value="envoyer">
        </form>

        <h2>Ajouter un logiciel</h2>
        <form action="./" method="POST">
        <input type="hidden" name="formulaire" value="logiciel">
            
        <input name="nom" type="text" placeholder="nom">
        <input type="submit" value="envoyer">
        </form>

        <h2>Lier une personne à un cours</h2>
        <form action="./" method="POST">
        <input type="hidden" name="formulaire" value="liencours">
        <select name="personne">
<?php 
        foreach($personnes as $personne){
            echo '<option value="'.$personne['id'].'">'.$personne['id'].' '.$personne['nom'].'</option>';
            
        }
?>
        </select>
        <select name="cours">
<?php 
        foreach($cours as $cour){
            echo '<option value="'.$cour['id'].'">'.$cour['id'].' '.$cour['nom'].'</option>';
            
        }
?>
        </select>

        <input type="submit" value="envoyer">
        </form>


        <h2>Lier une personne à un logiciel</h2>

    </body>

</html>

18/03

PLANCHE A3 base de données .jpg

Exemple de reqête SELECT avec PHP

<?php
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);

    $serverName = 'localhost';
    $username = 'root';
    $password = 'root';
    $dbName = 'outils_erg';

    $db = new PDO("mysql:host=$serverName;dbname=$dbName", $username, $password);

   // $answer = $db->query("SELECT personne.nom, commune.nom FROM personne JOIN commune ON personne.commune = commune.id WHERE commune.code = 1060");

   $answer = $db->query("SELECT personne.nom FROM personne JOIN personne_cours ON personne.id = personne_cours.id_personne JOIN cours ON personne_cours.id_cours = cours.id WHERE cours.annee = 'M1'");


    $result = $answer->fetchAll(PDO::FETCH_ASSOC);

    print_r($result);


?>



Exemple de connection à une db avec python

import pymysql

db = pymysql.connect(
    host='localhost',
    user='root',
    password='root',
    db='outils_erg'
)

cur = db.cursor()

cur.execute("SELECT * FROM personne")

result = cur.fetchall()

print(result)

25/2

#1. pour faire des requêtes http
import mechanize
#2. transformer la réponse en structure html navigable
import lxml.html
#3. sélectionner les données qui nous intéressent avec un sélecteur css
import cssselect

#https://www.meteo.be/fr/belgique



browser = mechanize.Browser()

browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0')]

browser.set_handle_robots(False)

data = browser.open('https://www.meteo.be/fr/belgique', timeout=10)


#print(data.read())

source = data.read()

html = lxml.html.fromstring(source)

#.now-cast-pp__description

selecteurs = cssselect.parse('now-cast')
#selecteurs = [objet cssselect]

selecteur = selecteurs[0]

chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)

resultats = html.xpath(chemin_xpath)

#print(resultats)
for resultat in resultats:
    print(resultat.get('title'))
    print(resultat.text_content())


11/2

Description des différentes relations entre les serveurs sur le web:

Serveur-web.jpg


Server web.png

Objectif

Les bases de données peuvent se révéler des outils particulièrement intéressant en terme de recherche en design et en art. L'objectif de ce module est d'approcher les bases de données relationnelles, de comprendre leurs spécificités et de développer une structure propre à chaque recherche.

Projet

Il est question pour ce module de définir un terrain de recherche pour ensuite créer une base de données à partir d'une collection de documents. Les "documents" en question peuvent être de multiples natures; interviews, articles, livres, vidéos, sons, images, etc.

Cette recherche peut se faire entièrement ou en partie sur le web, elle peut impliquer des rencontres, des interviews, des prises de vue, etc. Pour la définir, partez d'une situation qui vous intéresse, vous interpelle, la moins générale possible.

Nous allons aborder le modèle de bases de données relationnel. Il ne vous est pas demandé d'utiliser une implémentation spécifique de ce modèle (vous pourriez même créer une base de données entièrement physique) mais d'utiliser les concepts propres au modèle.

Références

Mark Lombardi

Forensic architecture

Mari Bastashevski

A/R

Programming is forgetting