Fork me on GitHub


 Bas   Précédent   Suivant

« 1 2 (3)


Re: classGenerator -> méthode insert ne fonctionne pas
Aspirant
Inscrit: 04/02/2003 05:02
De Toulouse, France
Messages: 47
Citation :
Tout d'abord, je suis content de te revoir sur Xoops France

j'étais toujours présent mais non connecté ... je suivais vos activités et votre dévouement à la communauté (ce dernier n'ayant pas toujours pas faibli malgrè le temps qui passe, super).

Citation :
Concernant ta question, c'est vrai qu'il y a un problème avec ClassGenerator, les classes générées doivent etre systématiquent reprises pour etre corrigées. Pour ma part j'ai laissé tomber.

C'est bien ce que je pensais et je vais donc, peut-être pas laisser tomber (utile de générer toutes les méthodes d'un coups) mais l'utiliser plutôt comme un générateur de modèle ... quelquechose du genre ... en attendant, je vais devoir reprendre mes classes; dommage, tout marche, sauf l'enregistrement ...

Citation :
Désolé de ne pas t'avoir donné la réponse

Oulà, pas de soucis là dessus, tu veux rire

Posté le : 08/08/2005 19:18
_________________
DB site...
Transférer la contribution vers d'autres applications Transférer


Re: Modification template mise a jour module system
Aspirant
Inscrit: 04/02/2003 05:02
De Toulouse, France
Messages: 47
Citation :

Supprimes les tables dans ta base,


Vider ne serait-il pas le terme approprié, sinon, ça sent la catastrophe ...

Posté le : 06/08/2005 19:37
_________________
DB site...
Transférer la contribution vers d'autres applications Transférer


Re: Vu la situation actuelle : Xoops 2.0.13 ou Xoops 2.2
Aspirant
Inscrit: 04/02/2003 05:02
De Toulouse, France
Messages: 47
Au vue de ce qu'il se dit dans ce sujet, ne serait-il pas intéressant de mettre plus en avant ce point "Officiel mais pas sur prod, ou alors avec prudence" dans l'article visible sur la page d'accueil ? (simple suggestion).

Posté le : 06/08/2005 12:12
_________________
DB site...
Transférer la contribution vers d'autres applications Transférer


Re: classGenerator -> méthode insert ne fonctionne pas
Aspirant
Inscrit: 04/02/2003 05:02
De Toulouse, France
Messages: 47
Citation :
ce code est bien compliqué et n'utilise pas toutes les possibilitées de XOOPS


Compliqué, sans doute mais la base est générée par le module classgenerator, je n'ai quasiment rien retouché. La complexité est plutôt due à la complexité de la classe XoopsObject et à sa compréhension ...
Pour ce qui du fait que le code n'utilise pas toutes les possibilités de Xoops, pourrais-tu préciser s'il te plait ? Je reprends actuellemment tous le code pour utiliser des classes et des méthodes de l'API Xoops, donc, cela m'intéresse fortement.

Pour ce qui est de Xoops 2.2, n'y étant pas encore passé (plutôt fan de la doctrine ministérielle "pour la mise à jour vers la dernière version, il est urgent d'attendre" ... mais j'avais jeté un coup d'oeil à cette nouvelle classe ...

Pour le moment, je pense continuer à développer en faisant les enregistrements au travers d'une fonction mais j'avoue ne pas comprendre pourquoi ce code ne marche pas ... personne ne semble éprouver de problèmes avec des classes générées par classgenerator, d'où ma question initiale ...

Merci pour ta réponse dans tous les cas

Posté le : 04/08/2005 19:05
_________________
DB site...
Transférer la contribution vers d'autres applications Transférer


Re: classGenerator -> méthode insert ne fonctionne pas
Aspirant
Inscrit: 04/02/2003 05:02
De Toulouse, France
Messages: 47
Je ne voulais pas le faire de suite vu la taille (je met tout comme ça, c'est fait) :

include_once XOOPS_ROOT_PATH.'/class/xoopsobject.php';

/**
 *     dbv_persons Class
 * 
 *     This class is responsible for providing data access mechanisms to the data source of Xoops dbv_persons class objects.
 * 
 *  @author Vincent Fourastié
 *  @package DB Volley
 *  @version 1.0
 */
class dbv_persons extends XoopsObject

    function 
dbv_persons$id null )
    {
        
$this->db =& Database::getInstance();

        
$this->initVar'persons_id'XOBJ_DTYPE_INTnullfalse10 );
        
$this->initVar'persons_sex'XOBJ_DTYPE_INTnullfalse10 );
        
$this->initVar'persons_surname'XOBJ_DTYPE_TXTBOXnullfalse );
        
$this->initVar'persons_firstname'XOBJ_DTYPE_TXTBOXnullfalse );
        
$this->initVar'persons_nicknames'XOBJ_DTYPE_TXTBOXnullfalse );
        
$this->initVar'persons_country'XOBJ_DTYPE_TXTBOXnullfalse );
        
$this->initVar'persons_country2'XOBJ_DTYPE_TXTBOXnullfalse );
        
$this->initVar'persons_birth'XOBJ_DTYPE_TXTBOXnullfalse );
        
$this->initVar'persons_height'XOBJ_DTYPE_INT,nullfalse10 );
        
$this->initVar'persons_birthwhere'XOBJ_DTYPE_TXTBOXnullfalse );
        
$this->initVar'persons_picture'XOBJ_DTYPE_TXTBOXnullfalse );
        
$this->initVar'persons_xoopsid'XOBJ_DTYPE_INTnullfalse10 );
        
$this->initVar'persons_occupation'XOBJ_DTYPE_INTnullfalse10 );
        
$this->initVar'persons_lastupdate'XOBJ_DTYPE_TXTBOXnullfalse );

        if ( isset( 
$id ) )
        {
            if ( 
is_array$id ) )
            {
                
$this->assignVars$id );
            }
            else
            {
                
$this->loadintval$id ) );
            }
        }
        else
        {
            
$this->setNew();
        }
    }

    function 
load$id )
    {
        
$sql 'SELECT *
                  FROM '
.$this->db->prefix'dbv_persons' ).'
                 WHERE persons_id = ''.$id.'''
;
        
$myrow $this->db->fetchArray$this->db->query$sql ) );
        
$this->assignVars$myrow );

        if ( !
$myrow )
        {
            
$this->setNew();
        }
    }
[
b][color=CC0000]...[/color][/b]
}

/**
 *     dbv_personshandler Class
 * 
 *     This class provides simple mechanisms for dbv_persons object
 * 
 *  @author Vincent Fourastié
 *  @package DB Volley
 *  @version 1.0
 */
class Xoopsdbv_personsHandler extends XoopsObjectHandler
{
    
/**
    * create
    *  
    * Create a new dbv_persons
    * 
    * @param bool $isNew Flag the new objects as 'new' ?
    * 
    * @return object dbv_persons
    */
    
function &create$isNew true )
    {
        
$dbv_persons = new dbv_persons();

        if ( 
$isNew )
        {
            
$dbv_persons->setNew();
        }

        return 
$dbv_persons;
    }

    
/**
    * get
    * 
    * Retrieve a dbv_persons
    * 
    * @param int $id Id of the dbv_persons
    * 
    * @return mixed reference to the {@link dbv_persons} object, FALSE if failed
    */
    
function &get$id )
    {
        
$sql 'SELECT *
                  FROM '
.$this->db->prefix'dbv_persons' ).'
                 WHERE persons_id = ''.$id.'''
;

        if ( !
$result $this->db->query$sql ) )
        {
            return 
false;
        }

        
$numrows $this->db->getRowsNum$result );

        if ( 
$numrows == )
        {
            
$dbv_persons = new dbv_persons($id);
            
$dbv_persons->assignVars$this->db->fetchArray$result ) );

            return 
$dbv_persons;
        }

        return 
false;
    }

    
/**
    * insert
    * 
    * Insert a new dbv_persons in the database
    * 
    * @param object $dbv_persons reference to the {@link dbv_persons} object
    * @param bool $force
    * 
    * @return bool FALSE if failed, TRUE if already present and unchanged or successful
    */
    
function insert( &$dbv_persons$force false )
    {
        global 
$xoopsConfig;

        if ( 
get_class$dbv_persons ) != 'dbv_persons' )
        {
                return 
false;
        }

        if ( !
$dbv_persons->isDirty() )
        {
                return 
true;
        }

        if ( !
$dbv_persons->cleanVars() )
        {
                return 
false;
        }

        foreach ( 
$dbv_persons->cleanVars as $k => $v )
        {
                ${
$k} = $v;
        }

        if ( 
$dbv_persons->isNew() )
        {
            
$dbv_persons = new dbv_persons();

            
$format 'INSERT INTO %s
                                   ( persons_id, persons_sex, persons_surname, persons_firstname,
                                        persons_nicknames, persons_country, persons_country2, persons_birth,
                                        persons_height, persons_birthwhere, persons_picture, persons_xoopsid,
                                        persons_occupation, persons_lastupdate )'
;
            
$format .= 'VALUES (%u, %u, %s, %s, %s, %s, %s, %s, %u, %s, %s, %u, %u, %s)';
            
$sql sprintf$format
                            
$this->db->prefix'dbv_persons' ), 
                            
$persons_id,
                            
$persons_sex,
                            
$this->db->quoteString$persons_surname ),
                            
$this->db->quoteString$persons_firstname ),
                            
$this->db->quoteString$persons_nicknames ),
                            
$this->db->quoteString$persons_country ),
                            
$this->db->quoteString$persons_country2 ),
                            
$this->db->quoteString$persons_birth ),
                            
$persons_height,
                            
$this->db->quoteString$persons_birthwhere ),
                            
$this->db->quoteString$persons_picture ),
                            
$persons_xoopsid,
                            
$persons_occupation,
                            
$this->db->quoteString$persons_lastupdate ) );
            
$force true;
        }
        else
        {
            
$format 'UPDATE %s
                          SET '
;
            
$format .= 'persons_id = '%u',
                        persons_sex = '
%u',
                        persons_surname = '
%s',
                        persons_firstname = '
%s',
                        persons_nicknames = '
%s',
                        persons_country = '
%s',
                        persons_country2 = '
%s',
                        persons_birth = '
%s',
                        persons_height = '
%u',
                        persons_birthwhere = '
%s',
                        persons_picture = '
%s',
                        persons_xoopsid = '
%u',
                        persons_occupation = '
%u',
                        persons_lastupdate = '
%s'';
            
$format .= ' WHERE persons_id = '%u'';
            
$sql sprintf$format,
                            
$this->db->prefix'dbv_persons' ),
                            
$persons_id,
                            
$persons_sex,
                            
$this->db->quoteString$persons_surname ),
                            
$this->db->quoteString$persons_firstname ),
                            
$this->db->quoteString$persons_nicknames ),
                            
$this->db->quoteString$persons_country ),
                            
$this->db->quoteString$persons_country2 ),
                            
$this->db->quoteString$persons_birth ),
                            
$persons_height,
                            
$this->db->quoteString$persons_birthwhere ),
                            
$this->db->quoteString$persons_picture ),
                            
$persons_xoopsid,
                            
$persons_occupation,
                            
$this->db->quoteString$persons_lastupdate ),
                            
$persons_id );
        }

        if ( 
false != $force )
        {
            
$result $this->db->queryF$sql );
        }
        else
        {
            
$result $this->db->query$sql );
        }

        if ( !
$result )
        {
            return 
false;
        }

        if ( empty( 
$persons_id ) )
        {
            
$persons_id $this->db->getInsertId();
        }

        
$dbv_persons->assignVar'persons_id'$persons_id );

        return 
true;
    }
[
b][color=CC0000]...[/color][/b]
}


Post édité pour supprimer les méthodes ne posant pas de problèmes

Posté le : 03/08/2005 23:45

Edité par DaBoyz sur 04/08/2005 18:55:37
_________________
DB site...
Transférer la contribution vers d'autres applications Transférer


classGenerator -> méthode insert ne fonctionne pas
Aspirant
Inscrit: 04/02/2003 05:02
De Toulouse, France
Messages: 47
Est-ce que quelqu'un a déjà eu ce soucis avec des classes générées par ce module ?

Là, après 2 jours, j'ai un début de réponse mais je sèche totalement ... en attendant, je passe par une fonction mais j'ai un gros soucis ... toutes mes instances générées avec la méthode get voient la valeur de isNew mise à true.

Du coups, aucun insert ne marche puisque l'insert se fait avec INSERT au lieu de UPDATE et avec numéro d'ID ... déjà existant

Posté le : 03/08/2005 22:39
_________________
DB site...
Transférer la contribution vers d'autres applications Transférer


Re: Probléme de mise í  jour de champ
Aspirant
Inscrit: 04/02/2003 05:02
De Toulouse, France
Messages: 47
Citation :
en l'occurence tu n'a pas le choix


De la bonne réponse de maquignon ça ...

Posté le : 03/08/2005 22:31
_________________
DB site...
Transférer la contribution vers d'autres applications Transférer



 Haut
« 1 2 (3)




Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

48 Personne(s) en ligne (35 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 48 | Plus ...