How Can I validate fields like username and email to verify if they already exist in database?
I have already created a database connection for the form.
I have already created a database connection for the form.
<?php
$db =& JFactory::getDBO();
$cf = JRequest::getString('name', '', 'post');
$query = "
SELECT COUNT(*)
FROM `jos_chronoforms_basicDemo`
WHERE `name` = '$cf'
";
$db->setQuery($query);
if ( $db->loadResult() ) {
return "name already exist";
}
?>
<?php
$db =& JFactory::getDBO();
$cf = JRequest::getString('email', '', 'post');
$query = "
SELECT COUNT(*)
FROM `jos_chronoforms_basicDemo`
WHERE `email` = '$cf'
";
$db->setQuery($query);
if ( $db->loadResult() ) {
return "email already exist";
}
?>
<?php
$db =& JFactory::getDBO();
$messages = array();
$name = JRequest::getString('name', '', 'post');
$email = JRequest::getString('email', '', 'post');
$query = "
SELECT COUNT(`name` = '$name') AS `name_count`,
COUNT(`email` = '$email') AS `email_count`,
FROM `#__chronoforms_basicDemo`
";
$db->setQuery($query);
$data = $db->loadAssoc();
if $data['name'] > 0 ) {
$messages[] = "name already exists";
}
if $data['email'] > 0 ) {
$messages[] = "email already exists";
}
if ( count($messages) ) {
return implode('<br />', $messages);
}
?>
Not tested and may need debugging.if ( $data['name'] > 0 ) {
$messages[] = "name already exists";
}
if ( $data['email'] > 0 ) {
$messages[] = "email already exists";
}
<?php
$db =& JFactory::getDBO();
$messages = array();
$name = JRequest::getString('name', '', 'post');
$email = JRequest::getString('email', '', 'post');
$query = "
SELECT COUNT(`name` = '$name') AS `name_count`,
COUNT(`email` = '$email') AS `email_count`,
FROM `jos_chronoforms_basicDemo`
";
$db->setQuery($query);
$data = $db->loadAssoc();
if ( $data['name'] > 0 ) {
$messages[] = "name already exists";
}
if ( $data['email'] > 0 ) {
$messages[] = "email already exists";
}
if ( count($messages) ) {
return implode('<br />', $messages);
}
?>
if ( $data['name_count'] > 0 ) {
$messages[] = "name already exists";
}
if ( $data['email_count'] > 0 ) {
$messages[] = "email already exists";
}
<?php
$db =& JFactory::getDBO();
$messages = array();
$select = array();
$name = JRequest::getString('name', '', 'post');
if ( !$name ) {
$messages[] = "Please enter a name";
} else {
$select[] = "SUM(CASE WHEN `name` = '$name' THEN 1 ELSE 0 END) AS `name_count`";
}
$email = JRequest::getString('email', '', 'post');
if ( !$email ) {
$messages[] = "Please enter an email";
} else {
$select[] = "SUM(CASE WHEN `email` = '$email' THEN 1 ELSE 0 END) AS `email_count`";
}
if ( count($select) ) {
$select = implode (', ', $select);
$query = "
SELECT $select
FROM `#__users`
";
$db->setQuery($query);
$data = $db->loadObject();
if ( $name && $data->name_count > 0 ) {
$messages[] = "This name is already in use";
}
if ( $email && $data->email_count > 0 ) {
$messages[] = "This email is already in use";
}
}
if ( count($messages) ) {
return implode('<br />', $messages);
}
?>
if ( !$name ) {
$messages[] = "Please enter a name";
} else {
$select[] = "SUM(CASE WHEN `name` = '$name' THEN 1 ELSE 0 END) AS `name_count`";
}
withif ( $name ) {
$select[] = "SUM(CASE WHEN `name` = '$name' THEN 1 ELSE 0 END) AS `name_count`";
}
changing 'name' for 'email' in the second.