HTMLフォームからJoomlaデータベースのテーブルにデータを挿入するにはどうすればよいですか?.
フォームのサンプルコード:Name : <input type="textbox" name="username"> Selection1 : <input type="checkbox" name="choice1" value="first"> Selection2 :<input type="checkbox" name="choice2" value="second"> Selection3: <input type="checkbox" name="choice3" value="third"> <input type="submit" value="submit" action="save_to_joomla_database.php"></form>
Joomlaデータベースの特定のテーブルにデータを格納するsave_to_joomla_database.php
に書き込む必要があるスクリプトは何ですか?
まず、JInputを使用して値を取得する必要があります。
$input = JFactory::getApplication()->input;
$username = $input->get('username');
$choice1 = $input->get('choice1');
$choice2 = $input->get('choice2');
$choice3 = $input->get('choice3');
次に、データベースクエリには、以下を使用できます。
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$columns = array('username', 'choice1', 'choice2', 'choice2');
$values = array($db->quote($username), $db->quote($choice1), $db->quote($choice2), $db->quote($choice3));
$query->insert($db->quoteName('#__table_name'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
$db->execute();
もちろん、ニーズに合わせてデータベースクエリにいくつかの変更を加える必要がありますが、これにより開始することができます。
@Lodderは間違いなく正しいですが、興味がある人のための別の構文があります。この構文を使用すると、フィールド名を何度も入力する手間が省けます。
$data = new stdClass;
$input = JFactory::getApplication()->input;
$data->username = $input->get('username');
$data->choice1 = $input->get('choice1');
$data->choice2 = $input->get('choice2');
$data->choice3 = $input->get('choice3');
$db = JFactory::getDbo();
$db->insertObject('#__table_name', $data);
オブジェクトのプロパティが列名と正確に一致している限り、insertObject
を使用してオブジェクトをテーブルに直接挿入できます