Reputation: 65
On my website I am trying to execute two queries in one but both are executing twice.
When I create a member I got two the same members in the database for the first query.
The second query isn't doing +1
but twice +1
so it makes +2
.
if (isset($_POST["Accept"])) {
try {
$group_id = mysql_real_escape_string($_POST["group_id"]);
$groupinfo = $group->GetGroupInfoByGroupId($group_id);
$groupname = $groupinfo['group_name'];
$requestnumber = mysql_real_escape_string($_POST['acceptID']);
$groupinvitation->Invitation_group_name = mysql_real_escape_string($groupname);
$groupinvitation->AddAsGroupMember($number, $group_id);
$r->UpdateParticipatedGroups($StatisticsRows, $participatedGroups);
$groupinvitation-> AcceptGroupRequest($requestnumber);
$feedback = "Awesome, You just added a friend!";
} catch(Exception $e) {
$feedback = $e -> getMessage();
}
functions:
public function AddAsGroupMember($number, $group_id)
{
$db = new Db();
$insert = "
INSERT INTO tblgroup_member(
group_id,
user_id,
group_name
) VALUES (
'" . $db->conn->real_escape_string($group_id) . "',
'" . $db->conn->real_escape_string($number) . "',
'" . $db->conn->real_escape_string($this->Invitation_group_name) . "'
)";
$db->conn->query($insert);
// update number of members
$select = "UPDATE tblgroups SET group_members = group_members + 1 WHERE " . $group_id . " = group_id";
$db->conn->query($select);
}
Upvotes: 1
Views: 427
Reputation: 2839
Let's make a simple debug
replace you code with this and you should be able to understand more about the function call.
if (isset($_POST["Accept"])) {
try {
echo 'main 0\n';
$group_id = mysql_real_escape_string($_POST["group_id"]);
echo 'main 1\n';
$groupinfo = $group->GetGroupInfoByGroupId($group_id);
echo 'main 2\n';
$groupname = $groupinfo['group_name'];
$requestnumber = mysql_real_escape_string($_POST['acceptID']);
$groupinvitation->Invitation_group_name = mysql_real_escape_string($groupname);
echo 'main 3\n';
$groupinvitation->AddAsGroupMember($number, $group_id);
echo 'main 4\n';
$r->UpdateParticipatedGroups($StatisticsRows, $participatedGroups);
echo 'main 5\n';
$groupinvitation-> AcceptGroupRequest($requestnumber);
echo 'main 6\n';
$feedback = "Awesome, You just added a friend!";
} catch(Exception $e) {
$feedback = $e -> getMessage();
}
and the function
public function AddAsGroupMember($number, $group_id)
{
echo 'func 1\n';
$db = new Db();
$insert = "INSERT INTO tblgroup_member(
group_id,
user_id,
group_name
) VALUES (
'" . $db->conn->real_escape_string($group_id) . "',
'" . $db->conn->real_escape_string($number) . "',
'" . $db->conn->real_escape_string($this->Invitation_group_name) . "'
)";
$db->conn->query($insert);
echo 'func 2\n';
// update number of members
$select = "UPDATE tblgroups SET group_members = group_members + 1 WHERE " . $group_id . " = group_id";
$db->conn->query($select);
echo 'func 3\n';
}
Another (better) way to make a simple debug is calling debug_print_backtrace inside AddAsGroupMember
Upvotes: 1