Fork me on GitHub

Rapport de message :*
 

Problème d'insertion en base

Titre du sujet : Problème d'insertion en base
par BaptX sur 03/08/2012 15:40:47

Bonjour à tous,

Toujours dans le cadre du développement de mon module, j'ai un problème d'insertion de date dans ma base.

Voici ma table :
Citation :
CREATE TABLE `member` (
`member_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`uid` mediumint(8) unsigned NOT NULL,
`member_lastname` varchar(30) NOT NULL,
`member_firstname` varchar(30) NOT NULL,
`member_birthdate` date NOT NULL,
`member_address` varchar(100) NOT NULL,
`member_postcode` int(5) NOT NULL,
`member_city` varchar(30) NOT NULL,
`member_mobilephone` varchar(10) NOT NULL,
`member_winamax` varchar(30) NOT NULL,
PRIMARY KEY (`member_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;


Ensuite j'ai créé un formulaire avec l'API Xoops :
include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
    
$form = new XoopsThemeForm($title'userform'$action'post'true);

    
$form->addElement(new XoopsFormText(_PPCONTRIB_AM_MEMBER_LASTNAME'member_lastname'30100$user->getVar('member_lastname')), true);
    
$form->addElement(new XoopsFormText(_PPCONTRIB_AM_MEMBER_FIRSTNAME'member_firstname'30255$user->getVar('member_firstname')), true);
    
$form->addElement(new XoopsFormTextDateSelect(_PPCONTRIB_AM_MEMBER_BIRTHDATE'member_birthdate'15strtotime($user->getVar('member_birthdate'))), true);
    
$form->addElement(new XoopsFormText(_PPCONTRIB_AM_MEMBER_ADDRESS'member_address'35255$user->getVar('member_address')), true);
    
$form->addElement(new XoopsFormText(_PPCONTRIB_AM_MEMBER_POSTCODE'member_postcode'5255$user->getVar('member_postcode')), true);
    
$form->addElement(new XoopsFormText(_PPCONTRIB_AM_MEMBER_CITY'member_city'35255$user->getVar('member_city')), true);
    
$form->addElement(new XoopsFormText(_PPCONTRIB_AM_MEMBER_PHONENUMBER'member_mobilephone'10255$user->getVar('member_mobilephone')), true);

    
$form->addElement(new XoopsFormHidden('op''save') );
    
$form->addElement(new XoopsFormButton('''submit'_SUBMIT'submit'));

    return 
$form;


XoopsFormTextDateSelect renvoie la date sous le format YYYY-MM-DD. Je pensais que le problème venait de là. Mais même en changeant en dur la date ne se sauvegarde pas en base.

Pour sauvegarder, j'utilise ça :
case "save":
        if ( !
$GLOBALS['xoopsSecurity']->check()  ) {
            
redirect_header('member.php'3implode(','$GLOBALS['xoopsSecurity']->getErrors() ));
        }
        if ( isset(
$_REQUEST['id'])  ) {
            
$obj =& $memberhandler->get($_REQUEST['id']);
        } else {
            
$obj =& $memberhandler->create();
        }
        
$obj->setVar('member_lastname'$_REQUEST['member_lastname']);
        
$obj->setVar('member_firstname'$_REQUEST['member_firstname']);
        
$obj->setVar('member_birthdate'$_REQUEST['member_birthdate']);
        
$obj->setVar('member_address'$_REQUEST['member_address']);
        
$obj->setVar('member_postcode'$_REQUEST['member_postcode']);
        
$obj->setVar('member_city'$_REQUEST['member_city']);
        
$obj->setVar('member_mobilephone'$_REQUEST['member_mobilephone']);
        if ( 
$memberhandler->insert($obj)  ) {
            
redirect_header('member.php'3sprintf(_PPCONTRIB_AM_SAVEDSUCCESS_PPCONTRIB_AM_MEMBER) );
        }


J'ai essayé de mettre en dur tous les formats possibles :
- 22-07-1984
- 1984-07-22
- 22/07/1984
- 1984/07/22

J'ai mm essayé de faire un strtotime. Rien n'y fait, en base c'est toujours le 1er janvier 1970 qui est enregistré.

Quelqu'un a une idée ?
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 ...