Bonjour,

Je suis actuellement en cours de développement pour un projet pour mes études.
Je dois créer un module Xoops, mais pour les requêtes SQL j'y suis un peu perdu.

J'aimerais accéder à un champ (uname) d'une table (la table users de xoops) pour pouvoir insérer une donnée dans un autre champ dans une autre table. En récupérant la donnée par un formulaire, j'aimerais ensuite l'insérée dans le champ "numero" de la table de mon module.

Lors de l'installation de mon module, j'ai créer une fonction pour copier le champ "uname" contenu dans la table "users" en copiant le contenu dans le champ "uname" de la table de mon module. (désolé pour la compréhension de mon probleme )

En gros mon problème que j'ai c'est d'avoir une requête qui permet de récupérer le nom de l'utilisateur actuellement connecté grâce à la table "users" et ainsi insérer le numéro de téléphone qu'il à entrer grâce aux formulaire en insérant celle-ci dans la table de mon module.

Pour y voir plus clair, voici le code que j'ai proposé.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
global $xoopsUser ;
global $xoopsDB ;
 
$myts =& MyTextSanitizer::getInstance();
$gsm = $myts->oopsAddSlashes($gsm); // == $_POST['gsm'] ;
 
// Récupération du nom de l'utilisateur de la table users du champ uname		
$uname = $xoopsUser->getVar('uname'); 
//echo $uname ;
 
 
$insert = "INSERT INTO ".$xoopsDB->prefix('smsabon')."(user_num) VALUES(SELECT uname FROM".$xoopsDB->prefix('smsabon')."WHERE uname=$uname)";
 
 
$result = $xoopsDB->queryF($insert);
//echo $insert ;
 
if(!$result){
	$messagesent = _MI_ERRORINSERT ;
}else{
 
	$messagesent = _MI_INSERT ;
        redirect_header("index.php?op=1",2,$messagesent);
}
J'ai essayer une requête INSERT avec pour values une autre Requete ce qui me donne avec un echo.

INSERT INTO x82a_smsabon(user_num) VALUES(SELECT uname FROM x82a_smsabon WHERE uname=CompteTest).

Je ne sais pas si c'est possible dans ce cas, à moins de le faire avec deux requête sql, ou en passant par un requête update.

PS : La table users est une table réservée et ne peux être ni modifié ni ajouter de nouvelle colonnes (sauf si dans le cas contraire ayant un code permettant de le faire).

Toute propositions d'aide acceptée.

Cordialement Thomas.