1
Indiquez l’intérêt que vous portez à cette question
0

Ajout d’enregistrement dans une table externe

Bonjour,

Sous SPIP 3.0.5, j’ai ajouté via PhpMyAdmin une table nommée spip_annonces.

Lorsque j’utilise une boucle boucle_xx(ANNONCES) pour lire les données de la table, tout va bien. Mais je ne parviens pas à ajouter d’enregistrement via la fonction sql_insertq.

Voici la syntaxe que j’utilise :
$id = sql_insertq(’spip_annonces’, array(’email’=>$email, ’mot-de-passe’=>$mot_de_passe, ’date_annonce’=>$date)) ;

J’ai déclaré la table dans mes_options.php (syntaxe ci-dessous, issue de http://programmer3.spip.net/Qu-est-ce-qu-un-pipeline et http://programmer3.spip.net/declarer_tables_principales), mais rien n’y fait.

J’ai pensé que l’erreur était peut-être \’ dans les déclarations MySQL des ENUM et les ai remplacé par des `, mais non... J’ai aussi remplacé ci-dessus ’spip_annonces’ par ’annonces’, non plus...

Voyez-vous où je me plante ? Et comment puis-je vérifier que ma table est bien déclarée ? Merci pour votre aide éventuelle !

<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
$GLOBALS['spip_pipeline']['declarer_tables_principales'] .= "|annonces_declarer_tables_principales";

function 
annonces_declarer_tables_principales($tables_principales){
// Declaration de la table spip_annonces
$tables_principales['spip_annonces'] = array(
    
'field'=> array(
        
'id_annonce'=>'INT UNSIGNED NOT NULL AUTO_INCREMENT',
        
'email'=>'VARCHAR(50) NOT NULL',
        
'telephone'=>'VARCHAR(10)',
        
'mot_de_passe'=>'TINYBLOB NOT NULL',
        
'date_annonce'=>'DATE NOT NULL',
        
'date_disponibilite'=>'DATE',
        
'loyer'=>'SMALLINT UNSIGNED',
        
'charges'=>'SMALLINT UNSIGNED',
        
'nature'=>'TINYINT UNSIGNED',
        
'colocation_acceptee'=>'ENUM(\'oui\', \'non\')',
        
'surface'=>'TINYINT UNSIGNED',
        
'a_pied'=>'TINYINT UNSIGNED',
        
'a_velo'=>'TINYINT UNSIGNED',
        
'en_transport'=>'TINYINT UNSIGNED',
        
'garage_a_velo'=>'ENUM(\'oui\', \'non\')',
        
'descriptif'=>'TEXT',
        
'valide'=>'ENUM(\'valide\',\'en_cours\', \'rejet\')'),
    
'key' =>array('PRIMARY KEY'=>'id_annonce')
    );
    
return 
$tables_principales;
}
?>