Dbs 2021-2022
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
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:
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.