par
agité » 23 mai 2008, 11:09
Merci Berzemus !
C'est exactement ce que je cherchais a faire, c'est vrai que ca me semble plus "logique" de faire comme ca, quand je construit la classe, il en appel une autre, enfin dans ma tête c'est plus clair !
Du coup ca donne ca :
Classe programme
<?
/********************************
* Classe de gestion programmes
*
********************************/
// Classe de gestion des programmes
class programme {
private $bdd;
function __construct()
{
$this->bdd = new dbquery();
}
function misenavant($id_programme,$id_etat)
{
$this->bdd->req_query("UPDATE programme SET est_mis_en_avant = ".$id_etat." WHERE id_programme = '".$id_programme."' ");
}
}
?>
Pour la classe dbquery ca reste la même que la derniere postée
Pour l'appel :
<?php
require_once('../_includes/php/classes/dbfactory.php');
require_once('../_includes/php/classes/programme.php');
require_once('../_includes/php/functions.php');
// Appel de la classe
$connect = new dbquery();
$programme = new programme();
// Formulaire ajout programme
if($_POST)
{
$query = $programme->misenavant($_POST['id_programme'],1);
}
else
{
// Supprimer un programme par $_GET
if($_GET['mode'] == "supprimer")
{
$query = $programme->misenavant($_GET['id_programme'],0);
}
}
?>
Voilà il me fait bien ce que je lui demande
Maintenant petit hic !
Les scripts tournent correctement mais j'ai quand même une message d'erreur qui c'est mis :
Warning: mysql_close(): 5 is not a valid MySQL-Link resource
Il doit pas trop aimer mon destructeur sur dbquery.
Si j'ai bien compris, lors de l'appel par programme il construit la classe et la détruit après utilisation donc lors de la destruction il arrive pas a fermer la connexion mysql puisque les destructeur correspond à :
// Deconnection de la bdd
function __destruct() {
mysql_close($this->dbconnect);
}
Il ne doit pas trouver le $this->dbconnect ou ne pas l'apprécier pourtant il correspond à :
// Connection a la bdd
function __construct() {
$this->dbconnect = @mysql_connect($this->config['host'],
$this->config['user'],
$this->config['pass']);
$this->dbtable = @mysql_select_db($this->config['dbname'],$this->dbconnect);
if(!$this->dbconnect)
{
echo "<b>- Impossible de se connecter a la base de donnée</b><br />";
}
if(!$this->dbtable)
{
echo "<b>- La base de donnée : '".$this->config['dbname']."' n'éxiste pas</b><br />";
}
}
Donc comment fermer proprement la connexion sql a la destruction ?