Constucteur de requete SQL en php
liliputien2002
Messages postés
46
Statut
Membre
-
cobax Messages postés 33 Statut Membre -
cobax Messages postés 33 Statut Membre -
Bonjour
Pour ceux qui en ont marre de taper a la mimine les requete sql simple (Select, Insert, Update, Delete)(monotable), voila un objet php qui pourra (je l'espère) faire plaisir à certain.
tout d'abord le code de l'objet :
Comment ca marche : de la manière suivante :
créer une variable de type table
Le premier paramètre identifie la table sur la quelle vous allez lancer vos requête.
Ensuite vous voulez faire un select mais que de certain champ :
maintenant faire executer la requete :
Pour de l'insert : on prend prend même objet puis on ecrit :
Pour le delete :
Pour tout supprimer
Pour supprimer 1 ligne spécifique
Updater :
toute la table
un tuple de la table
si vous souhaitez juste afficher la requete il suffit de replacer le mysql_query par un echo.
voila
si ça peut faire des heureux tant mieux
Pour ceux qui en ont marre de taper a la mimine les requete sql simple (Select, Insert, Update, Delete)(monotable), voila un objet php qui pourra (je l'espère) faire plaisir à certain.
tout d'abord le code de l'objet :
class Table {
var $From;
var $Table = array();
var $StrucTable = array();
// constructeur
function Table($NomTable, $NomBase) {
$this->From = $NomTable;
mysql_connect("localhost", "mdslroot", "access_");
mysql_select_db($NomBase);
$resultat=mysql_query("SELECT * FROM ".$NomTable);
$nbr_champ = mysql_num_fields($resultat);
$contenuChamp=mysql_fetch_row($resultat);
for ($i=0;$i<$nbr_champ;$i++) {
$this->StrucTable[$i] = mysql_field_name($resultat, $i);
}
mysql_close();
foreach($this->StrucTable as $k => $v) {
$this->Table[$v][0] = $v;
$this->Table[$v]["S"] = "Not";
$this->Table[$v]["V"] = "Not";
}
}
// métode de construction de requete select
function Select($WhereClause, $OrderClause, $GroupClause) {
$SelectClause = "";
foreach($this->StrucTable as $k => $v) {
if ($this->Table[$v]["S"] == "1") {
$SelectClause .= $this->Table[$v][0] . ", ";
}
}
$SelectClause = substr($SelectClause, 0, strlen($SelectClause)-2);
$Rq="SELECT " . $SelectClause . " FROM " . $this->From;
if ($WhereClause<>"") {
$Rq .= " WHERE " . $WhereClause;
}
if ($OrderClause<>"") {
$Rq .= " ORDER BY " . $OrderClause;
}
if ($GroupClause<>"") {
$Rq .= " GROUP BY " . $GroupClause;
}
$this->RAZ();
return $Rq;
} // fin de la méthode lire_patient
// méthode de contruction de requete Update
function Update($WhereClause) {
$UpdateClause = "";
foreach($this->StrucTable as $k => $v) {
if ($this->Table[$v]["S"] == "1") {
$UpdateClause .= "`" . $this->Table[$v][0] . "`='" . $this->Table[$v]["V"] . "', ";
}
}
$UpdateClause = substr($UpdateClause, 0, strlen($UpdateClause)-2);
$Rq="UPDATE `" . $this->From . "` SET " . $UpdateClause;
if ($WhereClause<>"") {
$Rq .= " WHERE " . $WhereClause;
}
$this->RAZ();
return $Rq;
}
// méthode de construc de requete Delete
function Supprime() {
$WhereClause = "";
foreach($this->StrucTable as $k => $v) {
if ($this->Table[$v]["S"] == "1") {
$WhereClause .= $this->Table[$v][0] . "=" . $this->Table[$v]["V"] . " AND ";
}
}
$WhereClause = substr($WhereClause, 0, strlen($WhereClause)-5);
$Rq="DELETE FROM ". $this->From;;
if ($WhereClause<>"") {
$Rq .= " WHERE " . $WhereClause;
}
$this->RAZ();
return $Rq;
}
// méthode de construction de requete Insert
function Insert() {
$InserChamp = "";
$InserValeur = "";
foreach($this->StrucTable as $k => $v) {
if ($this->Table[$v]["S"] == "1") {
$InserChamp .= "" . $this->Table[$v][0] . ", ";
$Valeur = '';
if ($this->Table[$v]["V"] <> "Not") {
$Valeur = $this->Table[$v]["V"];
}
$InserValeur .= "'" . addSlashes($Valeur) . "', ";
}
}
$InserChamp = substr($InserChamp, 0, strlen($InserChamp)-2);
$InserValeur = substr($InserValeur, 0, strlen($InserValeur)-2);
$this->RAZ();
$Rq="INSERT INTO `" . $this->From . "` (" . $InserChamp . ") VALUES (" . $InserValeur . ")";
return $Rq;
}
// méthode de remise à zéro :
// pour tous les champs de la table sélectionné on dit
// tous les champs ne sont plus sélectionner
// tous les champs n'ont plus aucune valeur
function RAZ() {
foreach($this->StrucTable as $k => $v) {
$this->Table[$v]["S"] = "Not";
$this->Table[$v]["V"] = "Not";
}
}
// Méthode de sélection du champs
function SelectChamp($NomChamp) {
$this->Table[$NomChamp]["S"] = 1;
}
// méthode d'affectation de valeur à un champs
function ValeurChamp($NomChamp, $LaValeur) {
$this->SelectChamp($NomChamp);
$this->Table[$NomChamp]["V"] = $LaValeur;
}
}
Comment ca marche : de la manière suivante :
créer une variable de type table
$Article = new Table("MaTable", "MaBase");
Le premier paramètre identifie la table sur la quelle vous allez lancer vos requête.
Ensuite vous voulez faire un select mais que de certain champ :
$Article->SelectChamp("Champ1");
$Article->SelectChamp("Champ3");
$Article->SelectChamp("Champ5");
maintenant faire executer la requete :
mysql_query($Article->Select("LaWhereClause", "LeOrderByClause", "LaGroupByClause"));
Pour de l'insert : on prend prend même objet puis on ecrit :
$Article->ValeurChamp("Champ1", "Valeur1");
$Article->ValeurChamp("Champ3", "Valeur3");
$Article->ValeurChamp("Champ5", "Valeur5");
mysql_query($Article->Insert());
Pour le delete :
Pour tout supprimer
mysql_query($Article->Supprime();)
Pour supprimer 1 ligne spécifique
$Article->SelectChamp("Champ1", "MaValeur");
mysql_query($Article->Supprime());
Updater :
toute la table
mysql_query($Article->Supprime());
un tuple de la table
$Article->ValeurChamp("Champ1", "MaValeur");
$Article->ValeurChamp("Champ1", "MaValeur");
mysql_query($Article->Supprime());
si vous souhaitez juste afficher la requete il suffit de replacer le mysql_query par un echo.
voila
si ça peut faire des heureux tant mieux
A voir également:
- Constucteur de requete SQL en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Logiciel sql - Télécharger - Bases de données
- Erreur de requete facebook - Forum Facebook
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
abdousow y a mieux tu paye qq'un et il fait tout .