Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Proposition de code pour une architecture MVC !
Fichier classes/bdd_mysql.class.php
Classe de base implémentant le singleton pour la connexion à la base de données
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
class bdd_mysql{
private static $_laconnexion;
/*
* Constructeur de BDD
*/
function __construct($_nomdb, $_user, $_pass){
$con=new PDO("mysql:host=127.0.0.1;dbname=$_nomdb", $_user, $_pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
bdd_mysql::$_laconnexion=$con;
}
public function getConnexion(){
return bdd_mysql::$_laconnexion;
}
}
?>
Enter to Rename, Shift+Enter to Preview
Fichier index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
require_once("classes\bdd_mysql.class.php");
/*
*CREATE --> Insert
*READ --> Select --> Cas par défaut
*UPDATE
*DELETE
*/
$madb=new bdd_mysql("debutterphp","root","");
var_dump($_GET);
if(isset($_GET["action"])){
$action=$_GET["action"];
switch($action){
case "create":
//echo "affiche le formulaire";
include('vues/form.php');
break;
case "delete":
include('controller/delete.php');
break;
default:
/*
* Gestion du listing
*/
include('vues/listing.php');
}
}
else{
/*
* Gestion du listing
*/
include('vues/accueil.php');
}
?>
Enter to Rename, Shift+Enter to Preview
vues/accueil.php
1
2
3
4
5
6
7
8
9
10
11
12
<h1>Welcome</h1>
<ul>
<li>
<a href="index.php?action=listing">Lister la base</a>
</li>
<li>
<a href="index.php?action=create">Ajouter un prof</a>
</li>
</ul>
Enter to Rename, Shift+Enter to Preview
Fichier vues/listing.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
//Toujours debugguer sa requete SQL en la plaçant dans une variable
$sql="SELECT * from profs WHERE supprimer=0";
//var_dump($sql);
//Exécution de la requete et recupération du jeu d'enregistrement (aussi appelé Curseur)
$jeu=$madb->getConnexion()->query($sql);
?>
<script language="javascript">
function confirmation(unid, unnom, unprenom){
console.log(unid);
if ( confirm( "voulez vous supprimez cet enregistrement " + unnom + " " + unprenom ) ) {
document.location.href="index.php?action=delete&id=" + unid;
}
}
</script>
<h1>Listing</h1>
<table border="1">
<tr>
<th></th>
<th>id</th>
<th>nom</th>
<th>prenom</th>
</tr>
<?php
//Itération Pour chaque Ligne (Row) du Jeu d'enregistrement($jeu)
foreach($jeu as $row){?>
<tr>
<td><a href="#" onclick="confirmation(<?php echo $row["id"]?>,'<?php echo $row["nom"]?>','<?php echo $row["prenom"]?>')"> supprimer</a></td>
<td><?php echo $row["id"] ?></td>
<td><?php echo $row["nom"] ?></td>
<td><?php echo $row["prenom"] ?></td>
</tr>
<?php } ?>
</table>
<h2><a href="index.php?action=create">Insérer un nouvel enregisrement</a>
Enter to Rename, Shift+Enter to Preview
Fichier vues/form.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
if(isset($_POST["bt_submit"])){
include("controller/create.php");
}
else{
//Affiche le formulaire
?>
<form action="index.php?action=create" method="POST">
<label for="_id">Identifiant</label>
<input id="_id" type="text" name="txt_id">
<br/>
<label for="_nom">Nom</label>
<input id="_nom" type="text" name="txt_nom">
<br/>
<label for="_prenom">Prenom</label>
<input id="_prenom" type="text" name="txt_prenom">
<br/>
<input type="submit" name="bt_submit" value="Valider">
</form>
<?php
}
?>
Enter to Rename, Shift+Enter to Preview
Fichier controller/create.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
var_dump($_POST);
// Cas du Insert
$_id=htmlentities($_POST["txt_id"]);
$_nom=htmlentities($_POST["txt_nom"]);
$_prenom=htmlentities($_POST["txt_prenom"]);
$sql="INSERT INTO profs VALUES(:id,:nom,:prenom, 0)";
//var_dump($sql);
$stmt=$madb->getConnexion()->Prepare($sql);
$stmt->bindParam(':id', $_id);
$stmt->bindParam(':nom', $_nom);
$stmt->bindParam(':prenom', $_prenom);
$stmt->execute();
header("Location: index.php?action=listing");
?>
Enter to Rename, Shift+Enter to Preview
Fichier controller/delete.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//var_dump($_GET);
// Cas du Insert
$_id=$_GET["id"];
//On simule un delete en utilisant un booleen
$sql="UPDATE profs SET supprimer=1 WHERE id=$_id";
//var_dump($sql);
$stmt=$madb->getConnexion()->Exec($sql);
header("Location: index.php?action=listing");
?>
Enter to Rename, Shift+Enter to Preview
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content