Commit a29216c7 authored by Charles DORMEVAL's avatar Charles DORMEVAL
Browse files

ajout bd vierge et script ecriture bd

parent ce8b4bb8
-- phpMyAdmin SQL Dump
-- version 4.7.4
-- https://www.phpmyadmin.net/
--
-- Hôte : 127.0.0.1:3306
-- Généré le : lun. 22 jan. 2018 à 10:07
-- Version du serveur : 5.7.19
-- Version de PHP : 5.6.31
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Base de données : `projet`
--
-- --------------------------------------------------------
--
-- Structure de la table `auteurs`
--
DROP TABLE IF EXISTS `auteurs`;
CREATE TABLE IF NOT EXISTS `auteurs` (
`id_auteur` int(255) NOT NULL AUTO_INCREMENT,
`nom_auteur` varchar(255) NOT NULL,
PRIMARY KEY (`id_auteur`),
UNIQUE KEY `id_auteur` (`id_auteur`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
......@@ -27,7 +27,7 @@ class ModeleBd
$request->bindParam(1, $auteur);
$request->execute();
/* return $request->fetch();*/
$resultat=$statement->fetchAll(PDO::FETCH_COLUMN, 0);
$resultat=$request->fetchAll(PDO::FETCH_COLUMN, 0);
return $resultat;
}
catch(PDOException $e){
......@@ -42,7 +42,7 @@ class ModeleBd
$exist=false;
$requete="select id_auteur from auteurs where nom_auteur=?";
$statement=$this->connexion->prepare($requete);
$statement->execute(array($pseudo));
$statement->execute(array($auteur));
if($statement->fetch()){
$exist=true;
......@@ -61,7 +61,8 @@ class ModeleBd
$request=$this->connexion->prepare("select id_oeuvre from oeuvres where nom_oeuvre=?");
$request->bindParam(1, $oeuvre);
$request->execute();
return $request->fetch();
$resultat=$request->fetchAll(PDO::FETCH_COLUMN, 0);
return $resultat;
}
catch(PDOException $e){
$this->deconnexion();
......@@ -106,11 +107,9 @@ class ModeleBd
}
}
public function insererOeuvre($oeuvre, $date, $idAuteur){
try{
$requete="insert into oeuvres (nom_oeuvre, date, id_auteur) VALUES(?,?,?);"
$requete="insert into oeuvres (nom_oeuvre, date, id_auteur) VALUES(?,?,?);";
$statement=$this->connexion->prepare($requete);
$statement->execute(array($oeuvre,$date,$idAuteur));
}
......@@ -135,6 +134,22 @@ class ModeleBd
}
}
public function remplirBd($auteur,$oeuvre,$date,$citation){
if($this->auteurExiste($auteur)){
$idAuteur=$this->getIdAuteur($auteur);
}else{
$this->insererAuteur($auteur);
$idAuteur=$this->getIdAuteur($auteur);
}
if($this->oeuvreExiste($oeuvre)){
$idOeuvre=$this->getIdOeuvre($oeuvre);
}else{
$this->insererOeuvre($oeuvre,$date,$idAuteur);
$idOeuvre=$this->getIdOeuvre($oeuvre);
}
$this->insererCitation($citation,$idOeuvre);
}
......
......@@ -87,8 +87,6 @@ function suppr_accents($str, $encoding='utf-8')
$matrice[$ligneMatrice][$colonneMatrice] = null;
}
}
//echo $matrice[$ligneMatrice][$colonneMatrice];
$colonneMatrice++;
}
$j++;
......@@ -97,10 +95,6 @@ function suppr_accents($str, $encoding='utf-8')
$ligneMatrice++;
}
/* ?>
</br>
<?php
*/
$i++;
}
......
......@@ -49,7 +49,7 @@ try{
}
for($i=0;$i<=200000;$i++){
for($i=1;$i<=200000;$i++){
if($citationtableau[$i]!=""){
$req=$bdd->prepare("insert into citations(id_citation, contenu, id_oeuvre) values(?, ?, ?)");
$req->bindParam(1, $i);
......
......@@ -9,27 +9,76 @@ $handle=fopen($fichier,"r");
$content=fread($handle,filesize($fichier));
/*----partie auteur----*/
$fichier="../../data/Toutes.txt";
//$fichier="Toutes.txt";
$handle=fopen($fichier,"r");
$content=fread($handle,filesize($fichier));
$split=explode("\n",$content); //on separe pour chaque saut de ligne
$i=0;
$citation=""; //string pour récupérer la citation
$matrice = array(); //matrice qui pour chaque ligne va contenir le nom de l'auteur - la source - la date - la citation
$colonneMatrice=0;
$ligneMatrice=0;
/*------FONCTIONS------*/
function suppr_accents($str, $encoding='utf-8')
{
// transformer les caractères accentués en entités HTML
$str = htmlentities($str, ENT_NOQUOTES, $encoding);
/*------FONCTIONS------*/
// remplacer les entités HTML pour avoir juste le premier caractères non accentués
// Exemple : "&ecute;" => "e", "&Ecute;" => "E", "à" => "a" ...
$str = preg_replace('#&([A-za-z])(?:acute|grave|cedil|circ|orn|ring|slash|th|tilde|uml);#', '\1', $str);
// Remplacer les ligatures
// Exemple "œ" => "oe"
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str);
// Supprimer tout le reste
$str = preg_replace('#&[^;]+;#', '', $str);
return $str;
}
/*--------AUTEUR+OEUVRE+DATE--------*/
$fichier="../../data/lesAuteurs.txt";
$handle=fopen($fichier,"r");
$content=fread($handle,filesize($fichier));
$split=explode("\n",$content); //on separe pour chaque saut de ligne
$j=0;
$colonneMatrice=0;
$ligneMatrice=0;
//on separe les auteurs de leur oeuvres et dates
$auteurTitreDate=array();
for($i=0;$i<sizeof($split);$i++){
$auteurTitreDate[$i]=explode(",",$split[$i]); //on separe au virgule
}
//a cause de la derniere virgule, il y a une case vide dans chaque sous tableau donc on le supprime
for($j=0;$j<sizeof($auteurTitreDate);$j++){
for($k=0;$k<sizeof($auteurTitreDate[$j]);$k++){
if($auteurTitreDate[$j][$k]==""){
unset($auteurTitreDate[$j][$k]);
}
if(empty($auteurTitreDate[$j][2])){
$auteurTitreDate[$j][2]=NULL;
}
}
}
/*------CITATIONS------*/
$pre_citations=array();
......@@ -59,8 +108,17 @@ foreach ($pre_citations as $courant){
else{
$index++;
}
}
/*------BDD-INSERTION-------------*/
$modeleBd = new ModeleBd();
$modeleBd->remplirBd("J.-R. BLOCH", "Cacaouettes et Bananes", NULL, "Quels mots impressionnants! Dakar : deux a, comme arabe, mais si différemment colorés
par les consonnes! Le k intercale son exotisme menaçant, l'r final gronde et se répercute.");
for($i=1; $i<sizeof($auteurTitreDate)-1; $i++){
$modeleBd->remplirBd($auteurTitreDate[$i][0], $auteurTitreDate[$i][1], $auteurTitreDate[$i][2], $citationtableau[$i]);
}
?>
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment