} $inval = $indata->{$opfieldid}; switch ($opfieldtype) { case 'text': if (!is_string($inval)) { finishWith('invalid: ' . $opfieldid); } break; case 'list': if (!is_array($inval)) { finishWith('invalid: ' . $opfieldid); } foreach ($inval as $val) { if (!is_string($val)) { finishWith('invalid val in ' . $opfieldid); } } break; } $indata_processed->{$opfieldid} = $inval; } $op_part_data = json_encode($indata_processed); } $return = joinOperation($op['id'], $user['id'], $op_part_data); $status = $return['status']; if ($status !== TRUE) { finishWith($status); } attachParticipantToOperation($op, $user['id']); $opHtml = renderOpWithTasks($op); echo json_encode(array('status' => 'success', 'ophtml' => $opHtml, 'addedpoints' => $return['addedpoints']));
function getParticipatingOperationsAndTasks($userid) { global $_DB; $stmt = $_DB->prepare("SELECT id, name, description, detail, data FROM operations WHERE id IN (select opid from operation_participants where userid=?)"); $stmt->bind_param('i', $userid); $stmt->execute(); $results = $stmt->get_result(); $operations = array(); while ($row = $results->fetch_array(MYSQLI_NUM)) { $opdata = $row[4]; if (!is_null($opdata)) { $opdata = json_decode($opdata); } $op = array('id' => $row[0], 'name' => $row[1], 'description' => $row[2], 'detail' => $row[3], 'data' => $opdata); attachParticipantToOperation($op, $userid); array_push($operations, $op); } return $operations; }