Classe qui execute les requetes noobies et experts souhaitant clarifier le code

0/5 (37 avis)

Vue 3 049 fois - Téléchargée 116 fois

Description

Cette classe permet de faire des requete sans les ecrire .
Je l'ai crée en 4 émé année a l'esgi.
Depuis je l'utilise et l'ameliore de temps a autres.
Elle m'a fait gagné enormement de temps aussi je la soumet et espere que des gens l'utiliseron et l amelorement aussi.
Il exsite une version que j ai ecrite en collaboration avec le DataDef qui fera l'objet d un prochain POST

Exemples d'utilisation:
$objet_genere_resultats = new genere_resultats(); #mon nouvel objet
$objet_genere_resultats->set_param('commande_tmp',''); # instanciation qui pointe sur la table desirée
#-----------Extration du detail -----------------
$ligneCommande=$objet_genere_resultats->GetValuesbyTableWhere($com_id,'com_id');
while ($ligneCmd = mysql_fetch_array($ligneCommande)) {
$a=$ligneCmd['com_taille'] . "<br>";
$b=$ligneCmd['com_recette']. "<br>";
$c=$ligneCmd['com_forme'];
}

# mise a jour d un champ
$objet_genere_resultats->UpdateField('com_pic_2',$fnew_name,$com_id,'com_id');
# mise a jour des données d un formulaire
$objet_genere_resultats->UpdateTable($_POST,$com_id,'com_id'); # il faut par contre que les noms des champs de formulaires soit les meme que ceux que vous avez en base de donnée pensez a faire des unset($_POST['valid_x']);unset($_POST['valid_y']); si necessaire ainsi la classe mettra a jour la base de donnée l'insertion est calqué sur le meme systeme.

Voila qui devrai vous faire gagner du temps.
N'oubliez pas d'effecturer au prealable la connexion a la base de donnée.
Un exemple de ce code est sur le site de rencontre www.love2love.com
Savon.

Source / Exemple :


<?php

#Ma classe genere les resultats.

Class genere_resultats {

var  $table;
var  $base;
var  $start =0;
var  $end =5;
function set_param($table_courante) {
#mon constructeur
$this->table = $table_courante;
$this->base = 'nomdevotrebase';
}

function recup_listes_tables (  ) {
$query = mysql_query("SHOW TABLES;");
return $query;
}
//on veut le nom des champs en fonction de la table.
function GetChampsbyTable(  ) {
$query = mysql_query("SHOW FIELDS FROM $this->table  ;");
return $query;
}
//on veut le nombre de champs de la table
//
function CountValues () {
$result = mysql_query ("SELECT COUNT(*) FROM $this->table;");
	$row = mysql_fetch_row($result);
	return $row[0];
}
//on veut les valeurs de la tables
//
function GetValuesbyTable() {
$query = mysql_query("select * FROM $this->table  ;");
return $query;
}
//on veut les valeurs de la tables pour la pagination
//
function GetValuesbyTableLimited($start,$end) {
$query = mysql_query("SELECT * FROM $this->table LIMIT $start,$end;");
return $query;
}
//on veut les valeurs de la tables
//
function GetValuesbyTableWhere( $fieldcond, $valfieldcond ) {
$query="SELECT * FROM $this->table WHERE " .$fieldcond . "=" .$valfieldcond;
$result = mysql_query($query);
	if (!$result)
		$result = -1;
return $result;
}

//on veut une valeur de la table
// 1 champ Valeur recherché 2 champ de condittion 3 valeur du champ de condittion
function GetValuebyFieldWhere( $fieldToGet ,$fieldcond, $valfieldcond ) {
$query="SELECT ".$fieldToGet." FROM $this->table WHERE " .$fieldcond . "=" .$valfieldcond;
$result = mysql_query($query);
$row = mysql_fetch_row($result);
return $row[0];
}

//on veut les valeurs du enum
//
function Enumget($field,$table) {
   $result=mysql_query("SHOW COLUMNS FROM `$table` LIKE '$field'");
   if(mysql_num_rows($result)>0){
       $row=mysql_fetch_row($result);
       $options=explode("','", preg_replace("/(enum|set)\('(.+?)'\)/","\\2", $row[1]));
   } else {
       $options=array();
   }
   return $options;
}
function InsertTable($values) {
$query = " INSERT INTO $this->table  ( ";

foreach ($values as $fieldName => $fieldValue){
  $query .=  $fieldName . ','  ;
  }
  $query = substr("$query", 0, -1); //J'enleve la derniere virgule
  $query.= ") VALUES( ";
foreach ($values as $fieldName => $fieldValue){
  $query .=  " ' ".$fieldValue  . "'" . ',' ;
  }
  $query = substr("$query", 0, -1); //J'enleve la derniere virgule
  $query .= ");" ;
  //echo $query;
  $code_retour=mysql_query( $query )
  or die("impossible d inserer les valeur dans la base , peut etre est elle protegée en ecriture ou indisponible.");
  return $code_retour;
}
// Update the contain data
//
function UpdateTable($values,$idToUpdate,$fieldIdName) {
$query = " UPDATE $this->table SET  ";
foreach ($values as $fieldName => $fieldValue){
  $query .= $fieldName.'='."'".$fieldValue."'".','  ;
  }
  $query = substr("$query", 0, -1); //J'enleve la derniere virgule
  $query .= " WHERE ". $fieldIdName . " = " . $idToUpdate;
  //echo $query;
   $retour =mysql_query($query) or die("L'update a echoué.");
  return $retour;
}
// Update only one contain data
//
function UpdateField($fieldName,$fieldValue,$idToUpdate,$fieldIdName) {
$query = " UPDATE $this->table SET  ";
$query .= $fieldName.'='."'".$fieldValue."'" ;
$query .= " WHERE ". $fieldIdName . " = " . $idToUpdate;
$retour =mysql_query($query);
return $retour;
}

}

?>

Conclusion :


mise a jour

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_savon Messages postés 21 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 19 mars 2007
19 mars 2007 à 14:04
Un autre exemplaire des sources se trouve a cet url

http://plutonserveur.homelinux.com/sources/
cs_savon Messages postés 21 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 19 mars 2007
16 mars 2007 à 10:32
lol bon bah c toi qui a commencé a en parlé hein.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
14 mars 2007 à 00:00
euh... use... enfin bon, on n'est pas sur un forum qui traite du perl...
cs_savon Messages postés 21 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 19 mars 2007
13 mars 2007 à 19:12
include patate je parle pas des requete
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 42
13 mars 2007 à 18:17
"Mais quel dommage que on ne puisse faire d inclusions."=> tu sors ca d'ou ? les requettes en perl sont libres avec DBI (je crois)
Afficher les 37 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.