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

Soyez le premier à donner votre avis sur cette source.

Vue 2 836 fois - Téléchargée 103 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
-
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
-
lol bon bah c toi qui a commencé a en parlé hein.
coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26 -
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
-
include patate je parle pas des requete
coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26 -
"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)

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.