<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Toadster122</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Toadster122"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Toadster122"/>
	<updated>2026-10-09T23:46:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Textarea_form_field_type&amp;diff=65012</id>
		<title>Textarea form field type</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Textarea_form_field_type&amp;diff=65012"/>
		<updated>2012-02-15T15:40:22Z</updated>

		<summary type="html">&lt;p&gt;Toadster122: /* Tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Params.textarea.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
{{Ambox|type=notice|text=In Joomla! 1.5, [[Form field|form fields]] were [[Parameter|parameters]]. For that version, you may want to use the corresponding [[Textarea parameter type]].}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;textarea&#039;&#039;&#039; form field type provides a text area for entry of multi-line text. If the field has a value saved, this value is displayed when the page is first loaded. If not, the default value (if any) is selected.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; (mandatory) must be &#039;&#039;textarea&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (mandatory) is the unique name of the field.&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; (mandatory) (translatable) is the descriptive title of the field.&lt;br /&gt;
* &#039;&#039;&#039;rows&#039;&#039;&#039; (mandatory) is the height of the visible text area in lines. If omitted the width is determined by the browser. The value of rows does not limit the number of lines that may be entered.&lt;br /&gt;
* &#039;&#039;&#039;cols&#039;&#039;&#039; (mandatory) is the width of the visible text area in characters. If omitted the width is determined by the browser. The value of cols does not limit the number of characters that may be entered.&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039; (optional) (translatable) is the default value.&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; (optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.&lt;br /&gt;
* &#039;&#039;&#039;class&#039;&#039;&#039; (optional)  is a CSS class name for the HTML form field. If omitted this will default to &#039;text_area&#039;.&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; (optional) allow the system to save certain html tags or raw data.&lt;br /&gt;
&lt;br /&gt;
Example XML field definition: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;field name=&amp;quot;mytextarea&amp;quot; type=&amp;quot;textarea&amp;quot; default=&amp;quot;default&amp;quot; label=&amp;quot;Enter some text&amp;quot; description=&amp;quot;&amp;quot; rows=&amp;quot;10&amp;quot; cols=&amp;quot;5&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Use the raw filter to ensure that html code is preserved when the form is processed:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;field name=&amp;quot;mytextarea&amp;quot; type=&amp;quot;textarea&amp;quot; default=&amp;quot;default&amp;quot; label=&amp;quot;Enter some html&amp;quot; description=&amp;quot;&amp;quot; rows=&amp;quot;10&amp;quot; cols=&amp;quot;5&amp;quot; filter=&amp;quot;raw&amp;quot;/&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=== Tips ===&lt;br /&gt;
* If you need to line break just encode &amp;lt;code&amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;/code&amp;gt; in the XML config file like this: &amp;lt;code&amp;gt;&amp;amp;amp;lt;br /&amp;amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you need a new line character in your default value, add &amp;lt;code&amp;gt;&amp;amp;amp;#13;&amp;amp;amp;#10;&amp;lt;/code&amp;gt; to the default parameter&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
* [[Text form field type]]&lt;br /&gt;
* [[Standard form field types|List of standard form field types]]&lt;br /&gt;
[[Category:Standard form field types]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Toadster122</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Textarea_form_field_type&amp;diff=65011</id>
		<title>Textarea form field type</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Textarea_form_field_type&amp;diff=65011"/>
		<updated>2012-02-15T15:40:02Z</updated>

		<summary type="html">&lt;p&gt;Toadster122: /* Tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Params.textarea.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
{{Ambox|type=notice|text=In Joomla! 1.5, [[Form field|form fields]] were [[Parameter|parameters]]. For that version, you may want to use the corresponding [[Textarea parameter type]].}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;textarea&#039;&#039;&#039; form field type provides a text area for entry of multi-line text. If the field has a value saved, this value is displayed when the page is first loaded. If not, the default value (if any) is selected.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; (mandatory) must be &#039;&#039;textarea&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (mandatory) is the unique name of the field.&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; (mandatory) (translatable) is the descriptive title of the field.&lt;br /&gt;
* &#039;&#039;&#039;rows&#039;&#039;&#039; (mandatory) is the height of the visible text area in lines. If omitted the width is determined by the browser. The value of rows does not limit the number of lines that may be entered.&lt;br /&gt;
* &#039;&#039;&#039;cols&#039;&#039;&#039; (mandatory) is the width of the visible text area in characters. If omitted the width is determined by the browser. The value of cols does not limit the number of characters that may be entered.&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039; (optional) (translatable) is the default value.&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; (optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.&lt;br /&gt;
* &#039;&#039;&#039;class&#039;&#039;&#039; (optional)  is a CSS class name for the HTML form field. If omitted this will default to &#039;text_area&#039;.&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; (optional) allow the system to save certain html tags or raw data.&lt;br /&gt;
&lt;br /&gt;
Example XML field definition: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;field name=&amp;quot;mytextarea&amp;quot; type=&amp;quot;textarea&amp;quot; default=&amp;quot;default&amp;quot; label=&amp;quot;Enter some text&amp;quot; description=&amp;quot;&amp;quot; rows=&amp;quot;10&amp;quot; cols=&amp;quot;5&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Use the raw filter to ensure that html code is preserved when the form is processed:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;field name=&amp;quot;mytextarea&amp;quot; type=&amp;quot;textarea&amp;quot; default=&amp;quot;default&amp;quot; label=&amp;quot;Enter some html&amp;quot; description=&amp;quot;&amp;quot; rows=&amp;quot;10&amp;quot; cols=&amp;quot;5&amp;quot; filter=&amp;quot;raw&amp;quot;/&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=== Tips ===&lt;br /&gt;
* If you need to line break just encode &amp;lt;code&amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;/code&amp;gt; in the XML config file like this: &amp;lt;code&amp;gt;&amp;amp;amp;lt;br /&amp;amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you need a new line character in your default value, add this &amp;lt;code&amp;gt;&amp;amp;amp;#13;&amp;amp;amp;#10;&amp;lt;/code&amp;gt; to the default&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
* [[Text form field type]]&lt;br /&gt;
* [[Standard form field types|List of standard form field types]]&lt;br /&gt;
[[Category:Standard form field types]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Toadster122</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_the_JTable_class&amp;diff=59198</id>
		<title>J1.5:Using the JTable class</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_the_JTable_class&amp;diff=59198"/>
		<updated>2011-06-02T17:08:14Z</updated>

		<summary type="html">&lt;p&gt;Toadster122: Tested in Joomla! 1.5.22, and if $row-&amp;gt;store is successful, it returns true, not NULL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
== Writing an extension of JTable ==&lt;br /&gt;
&lt;br /&gt;
The [[JTable]] class is an implementation of the [http://en.wikipedia.org/wiki/Active_record_pattern Active Record] design pattern. It is used throughout Joomla! for [http://en.wikipedia.org/wiki/Create,_read,_update_and_delete creating, reading, updating, and deleting] records in the database table.&lt;br /&gt;
&lt;br /&gt;
To use JTable, create an extension of the class. In this example, we have a database table containing recipes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die();&lt;br /&gt;
&lt;br /&gt;
class TableRecipes extends JTable&lt;br /&gt;
{&lt;br /&gt;
	var $id = null;&lt;br /&gt;
	var $ingredients = null;&lt;br /&gt;
	var $instructions = null;&lt;br /&gt;
	var $serves = null;&lt;br /&gt;
	var $difficulty = null;&lt;br /&gt;
	var $prep_time = null;&lt;br /&gt;
	var $cook_time = null;&lt;br /&gt;
	var $published = 0;&lt;br /&gt;
	&lt;br /&gt;
	function __construct(&amp;amp;$db)&lt;br /&gt;
	{&lt;br /&gt;
		parent::__construct( &#039;#__recipes&#039;, &#039;id&#039;, $db );&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When naming your class extension, the convention is to prefix it with &#039;Table&#039;, then follow with a [http://en.wikipedia.org/wiki/CamelCase CamelCased] version of the table&#039;s name. All of the member variables of your class should match the column names in the database. The default values should be valid according to the table schema For instance, if you have columns that are NOT NULL, you must use a value other than &#039;null&#039; as the default.&lt;br /&gt;
&lt;br /&gt;
Finally,  create a constructor for the class that accepts a reference to the current database instance. This will call the parent constructor which needs the name of the table, the name of the primary key column, and the database instance. The name of the table uses #__ instead of jos_, as the administrator can pick any table prefix desired during Joomla! installation.&lt;br /&gt;
&lt;br /&gt;
If you were using this class as a part of a component called &#039;Recipes&#039;, you would place this code in the file /administrator/components/com_recipes/tables/recipes.php.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using a JTable class extension ==&lt;br /&gt;
&lt;br /&gt;
Once the table class is in place, you can use it in any Joomla! extension. To include the file, place this line in your extension&#039;s source code (use com_nameofyourcomponent in place of com_recipes):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.&#039;components&#039;.DS.&#039;com_recipes&#039;.DS.&#039;tables&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get an instance of the object, use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$row =&amp;amp; JTable::getInstance(&#039;recipes&#039;, &#039;Table&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the lowercase version of the suffix of your class name is used as the first parameter, with the prefix &#039;Table&#039; as the second. Also, the getInstance() member function of JTable returns the object by reference instead of value; use =&amp;amp; to enforce this. &lt;br /&gt;
&lt;br /&gt;
In a model class (extends JModel) you can also use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$row =&amp;amp; $this-&amp;gt;getTable(&#039;recipes&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that if you have not used the standard naming convention, you can supply the class prefix as the optional second parameter.&lt;br /&gt;
&lt;br /&gt;
=== Create/Update ===&lt;br /&gt;
In a typical situation, you will have an HTML form submitted by the user which will PHP will interpret for you as an associative array. The JRequest class in Joomla! has functions ready to assist with retrieving this data safely. Use JRequest::get(&#039;post&#039;) to retrieve all of the elements in the HTTP POST request as a sanitized array.&lt;br /&gt;
&lt;br /&gt;
Once you have this array, you can pass it into the bind() method of JTable. Doing this will match the associated items of the array with member variables of the class. In the following example, the array is retrieved from JRequest::get(&#039;post&#039;) and immediately passed into bind(). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (!$row-&amp;gt;bind( JRequest::get( &#039;post&#039; ) )) {&lt;br /&gt;
	return JError::raiseWarning( 500, $row-&amp;gt;getError() );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If bind() fails, you want to stop the application and explain the failure before your extension attempts to send the data. The raiseWarning() function of JError allows you to stop Joomla!, while the getError() function returns the error message stored in the JTable object.&lt;br /&gt;
&lt;br /&gt;
When binding succeeds and your object is ready, call the store() function. Again, if something goes wrong, stop the application and explain why. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (!$row-&amp;gt;store()) {&lt;br /&gt;
	JError::raiseError(500, $row-&amp;gt;getError() );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* If any member variables of your JTable object are null when store() is called, they are ignored by default. This allows you to update specific columns of your table, while leaving the others untouched. If you wish to override this behavior to ensure that all columns have a value, pass true into store().&lt;br /&gt;
* The JTable::bind() and JRequest::get() functions do not enforce data types. If you need a column to be a specific type (for instance, integer), you need to add this logic to your code before calling store().&lt;br /&gt;
&lt;br /&gt;
=== Read ===&lt;br /&gt;
To load a specific row of the database with JTable, pass the key into the load() member function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$row-&amp;gt;load( $id );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This relies on the key column you specified in the second parameter of parent::__construct() when you extended JTable.&lt;br /&gt;
&lt;br /&gt;
=== Delete ===&lt;br /&gt;
Like read(), delete() allows you to destroy a specific row in the table based on the key specified earlier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$row-&amp;gt;delete( $id );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to delete multiple rows at once, you will need to write the query manually.&lt;br /&gt;
&lt;br /&gt;
== Member Functions ==&lt;br /&gt;
{{jfr summary|class=JTable|methods=yes}}&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
When properly extended, JTable gives you all of the basic functions you need for managing and retrieving records in a database table. Member functions take care of the rest when you add member variables, the table name, and the key column.&lt;/div&gt;</summary>
		<author><name>Toadster122</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_the_JTable_class&amp;diff=59197</id>
		<title>J1.5:Using the JTable class</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_the_JTable_class&amp;diff=59197"/>
		<updated>2011-06-02T17:02:49Z</updated>

		<summary type="html">&lt;p&gt;Toadster122: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
== Writing an extension of JTable ==&lt;br /&gt;
&lt;br /&gt;
The [[JTable]] class is an implementation of the [http://en.wikipedia.org/wiki/Active_record_pattern Active Record] design pattern. It is used throughout Joomla! for [http://en.wikipedia.org/wiki/Create,_read,_update_and_delete creating, reading, updating, and deleting] records in the database table.&lt;br /&gt;
&lt;br /&gt;
To use JTable, create an extension of the class. In this example, we have a database table containing recipes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die();&lt;br /&gt;
&lt;br /&gt;
class TableRecipes extends JTable&lt;br /&gt;
{&lt;br /&gt;
	var $id = null;&lt;br /&gt;
	var $ingredients = null;&lt;br /&gt;
	var $instructions = null;&lt;br /&gt;
	var $serves = null;&lt;br /&gt;
	var $difficulty = null;&lt;br /&gt;
	var $prep_time = null;&lt;br /&gt;
	var $cook_time = null;&lt;br /&gt;
	var $published = 0;&lt;br /&gt;
	&lt;br /&gt;
	function __construct(&amp;amp;$db)&lt;br /&gt;
	{&lt;br /&gt;
		parent::__construct( &#039;#__recipes&#039;, &#039;id&#039;, $db );&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When naming your class extension, the convention is to prefix it with &#039;Table&#039;, then follow with a [http://en.wikipedia.org/wiki/CamelCase CamelCased] version of the table&#039;s name. All of the member variables of your class should match the column names in the database. The default values should be valid according to the table schema For instance, if you have columns that are NOT NULL, you must use a value other than &#039;null&#039; as the default.&lt;br /&gt;
&lt;br /&gt;
Finally,  create a constructor for the class that accepts a reference to the current database instance. This will call the parent constructor which needs the name of the table, the name of the primary key column, and the database instance. The name of the table uses #__ instead of jos_, as the administrator can pick any table prefix desired during Joomla! installation.&lt;br /&gt;
&lt;br /&gt;
If you were using this class as a part of a component called &#039;Recipes&#039;, you would place this code in the file /administrator/components/com_recipes/tables/recipes.php.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using a JTable class extension ==&lt;br /&gt;
&lt;br /&gt;
Once the table class is in place, you can use it in any Joomla! extension. To include the file, place this line in your extension&#039;s source code (use com_nameofyourcomponent in place of com_recipes):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.&#039;components&#039;.DS.&#039;com_recipes&#039;.DS.&#039;tables&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get an instance of the object, use this code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$row =&amp;amp; JTable::getInstance(&#039;recipes&#039;, &#039;Table&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that the lowercase version of the suffix of your class name is used as the first parameter, with the prefix &#039;Table&#039; as the second. Also, the getInstance() member function of JTable returns the object by reference instead of value; use =&amp;amp; to enforce this. &lt;br /&gt;
&lt;br /&gt;
In a model class (extends JModel) you can also use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$row =&amp;amp; $this-&amp;gt;getTable(&#039;recipes&#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that if you have not used the standard naming convention, you can supply the class prefix as the optional second parameter.&lt;br /&gt;
&lt;br /&gt;
=== Create/Update ===&lt;br /&gt;
In a typical situation, you will have an HTML form submitted by the user which will PHP will interpret for you as an associative array. The JRequest class in Joomla! has functions ready to assist with retrieving this data safely. Use JRequest::get(&#039;post&#039;) to retrieve all of the elements in the HTTP POST request as a sanitized array.&lt;br /&gt;
&lt;br /&gt;
Once you have this array, you can pass it into the bind() method of JTable. Doing this will match the associated items of the array with member variables of the class. In the following example, the array is retrieved from JRequest::get(&#039;post&#039;) and immediately passed into bind(). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (!$row-&amp;gt;bind( JRequest::get( &#039;post&#039; ) )) {&lt;br /&gt;
	return JError::raiseWarning( 500, $row-&amp;gt;getError() );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If bind() fails, you want to stop the application and explain the failure before your extension attempts to send the data. The raiseWarning() function of JError allows you to stop Joomla!, while the getError() function returns the error message stored in the JTable object.&lt;br /&gt;
&lt;br /&gt;
When binding succeeds and your object is ready, call the store() function. Unlike the bind() method, the store() method returns null if successful. Again, if something goes wrong, stop the application and explain why. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (!$row-&amp;gt;store()) {&lt;br /&gt;
	JError::raiseError(500, $row-&amp;gt;getError() );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* If any member variables of your JTable object are null when store() is called, they are ignored by default. This allows you to update specific columns of your table, while leaving the others untouched. If you wish to override this behavior to ensure that all columns have a value, pass true into store().&lt;br /&gt;
* The JTable::bind() and JRequest::get() functions do not enforce data types. If you need a column to be a specific type (for instance, integer), you need to add this logic to your code before calling store().&lt;br /&gt;
&lt;br /&gt;
=== Read ===&lt;br /&gt;
To load a specific row of the database with JTable, pass the key into the load() member function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$row-&amp;gt;load( $id );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This relies on the key column you specified in the second parameter of parent::__construct() when you extended JTable.&lt;br /&gt;
&lt;br /&gt;
=== Delete ===&lt;br /&gt;
Like read(), delete() allows you to destroy a specific row in the table based on the key specified earlier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$row-&amp;gt;delete( $id );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to delete multiple rows at once, you will need to write the query manually.&lt;br /&gt;
&lt;br /&gt;
== Member Functions ==&lt;br /&gt;
{{jfr summary|class=JTable|methods=yes}}&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
When properly extended, JTable gives you all of the basic functions you need for managing and retrieving records in a database table. Member functions take care of the rest when you add member variables, the table name, and the key column.&lt;/div&gt;</summary>
		<author><name>Toadster122</name></author>
	</entry>
</feed>