-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRequeteSQL.php
98 lines (82 loc) · 2.73 KB
/
RequeteSQL.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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
require_once("BibliothequeFonctions.php");
teteDePage("Requete SQL");
// tente de se connecter à la BDD, et renvoie une erreur sinon
function sqlConnexion() {
global $mdpBDD;
global $nomBDD;
// renvoie un objet de connexion, ou false si echec
// prend en argument : serveur, utilisateur, mdp, nom de la BDD
$connex = mysqli_connect('localhost', 'root', $mdpBDD, $nomBDD);
if (!$connex) {
echo "<br>Erreur : impossible de se connecter à la BDD (".$mysqli_connect_error().").";
}
return $connex;
}
// renvoie un String correspondant à cette requete :
// SELECT $attributs FROM $table WHERE $clef1 LIKE "%$val1%" AND $clef2=$val2 AND...
// fonctionne uniquement avec une tableau contenant String et int
// le tableau $conditions peut contenir un tableau indicé, ce qui donnera :
// ... AND ($clef=$val1 OR $clef=$val2)
function creationRequete($attributs, $table, $conditions) {
$sqlRequete = "SELECT";
foreach ($attributs as $att) {
$sqlRequete = $sqlRequete." $att,"; // SELECT "att1", "att2",
}
// on retire la virgule en trop
$sqlRequete = substr($sqlRequete, 0, strlen($sqlRequete)-1);
$sqlRequete = $sqlRequete." FROM ".$table." WHERE ";
// on ajoute les conditions séparées par AND
foreach ($conditions as $clef => $val) {
//$clef = $cl;
// si c'est un string : clef LIKE "%val%" AND
if (is_string($val)) {
$sqlRequete = $sqlRequete." ".$clef." LIKE \"%".$val."%\" AND";
// si c'est un tableau : ( clef=valInt1 OR clef LIKE "%valInt2%" ) AND
} else if (is_array($val)) {
$sqlRequete = $sqlRequete." (";
foreach ($val as $valInterne) {
//echo $valInterne;
if (is_string($valInterne)) {
$sqlRequete = $sqlRequete." ".$clef." LIKE \"%".$valInterne."%\" OR";
} else {
$sqlRequete = $sqlRequete." ".$clef."=".$valInterne." OR";
}
}
$sqlRequete = substr($sqlRequete, 0, strlen($sqlRequete)-2);
$sqlRequete = $sqlRequete.") AND";
// sinon c'est un entier : clef="val" AND
} else {
$sqlRequete = $sqlRequete." ".$clef."=".$val." AND";
}
}
// on retire le AND de trop et on met le point-virgule final
$sqlRequete = substr($sqlRequete, 0, strlen($sqlRequete)-4);
$sqlRequete = $sqlRequete.";";
return $sqlRequete;
}
/*
function afficherApercuCompte($donneesCompte) {
$nbrAbonnés = sqli_query();
?>
<div>
<p><?php echo $donneesCompte["pseudo"];?></p>
<p>Abonnés <?php echo $donneesCompte[];?></p>
</div>
<?php
}
*/
/*
$userid = array(1, 3);
$conditions = array("pseudo" => "delta", "userid" => $userid);
$attributs = array("userid", "pseudo");
$table = "Users";
echo "<br><u>inputs :</u><pre>";
print_r($attributs);
echo $table.", <br>";
print_r($conditions);
echo "</pre>";
echo "<br><u>output :</u> ".creationRequete($attributs, $table, $conditions);
*/
piedDePage();
?>