ich verstehe, und es funktioniert - danke
ich habe jetzt die SQL Anweisung erweitert, da ich 3 Tabellen habe, wo etwas reingeschrieben werden soll. Das sind folgende:
- #__users
- #__mitarbeitertamm --> Spalten ( id, dienstnummer, rang, telefon) wobei die id = userid sein soll, damit die tabelle verbunden werden kann
- #__usergroup_maps -> Spalten (id, group_id)
ich habe die 3 Tabellen jetzt mit join left wie folgt verbunden.
in der mod_erstellen_lspd habe ich rangname erweitert
$rangname = (int) $app->input->get('rangname');
in der helper.php habe ich das Insert auf der Rangnummer sowie die Gruppen ID und erweitert:
<?php
/*
#__user_usergroup_map - #__users - #__mitarbeiterstamm_lspd
*/
defined('_JEXEC') or die;
class modEinstellen_lspd {
public static function Einstellen($name, $username, $email, $password) {
JLoader::register('UsersModelUser', JPATH_ADMINISTRATOR . '/components/com_users/models/user.php');
$data = array();
$userModel = new UsersModelUser;
$data['name'] = $name;
$data['username'] = $username;
$data['password'] = $data['password2'] = $password;
$data['email'] = $email;
$data['rangname'] = $rangname;
// (Benutzergruppen-ID = 10 --> Mitarbeit LSPD.
$data['group'] = 10;
// Andere variablen autom. leeren
$data['registerDate'] = '';
$data['lastvisitDate'] = '';
$data['lastResetTime'] = '';
$data['resetCount'] = 0;
$data['sendEmail'] = 0;
$data['block'] = 0;
$data['requireReset'] = 0;
$data['params'] = array('admin_style' => '', 'admin_language' => '', 'language' => '', 'editor' => '', 'helpsite' => '', 'timezone' => '');
$userModel->save($data);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$columns = array('a.name', 'a.username', 'a.email', 'a.password', 'b.group_id', 'c.rang');
$values = array($db->quote($data['name']), $db->quote( $data['username']), $db->quote($data['email']), $db->quote($data['password']), $db->quote($data['group']), $db->quote($data['rangname']) );
$query
->insert($db->quoteName('#__users', 'a'))
->join('LEFT', $db->quoteName('#__user_usergroup_map', 'b') . ' ON ' . $db->quoteName('a.id') . ' = ' . $db->quoteName('b.id'))
->join('LEFT', $db->quoteName('#__mitarbeiterstamm_lspd', 'c') . ' ON ' . $db->quoteName('a.id') . ' = ' . $db->quoteName('c.id'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
$db->execute();
}
}
?>
Alles anzeigen
Zitat
und erhalte den folgenden Fehlercode:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AS `a`
(`a`.`name`,`a`.`username`,`a`.`email`,`a`.`password`,`b`.`group_id`,...' at line 1
Wie kopiert man die User ID von #__users in die anderen beiden tabellen, sodass ich den Rang und die Gruppe festsetzen kann?