A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_URI::$config is deprecated
Filename: core/URI.php
Line Number: 101
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Router::$uri is deprecated
Filename: core/Router.php
Line Number: 127
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$benchmark is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$hooks is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$config is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$log is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$utf8 is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$uri is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$exceptions is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$router is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$output is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$security is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$input is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$lang is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$load is deprecated
Filename: core/Controller.php
Line Number: 78
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$db is deprecated
Filename: core/Loader.php
Line Number: 390
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_DB_mysqli_driver::$failover is deprecated
Filename: database/DB_driver.php
Line Number: 371
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$email is deprecated
Filename: core/Loader.php
Line Number: 1290
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Return type of CI_Session_files_driver::open($save_path, $name) should either be compatible with SessionHandlerInterface::open(string $path, string $name): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 132
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Return type of CI_Session_files_driver::close() should either be compatible with SessionHandlerInterface::close(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 290
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Return type of CI_Session_files_driver::read($session_id) should either be compatible with SessionHandlerInterface::read(string $id): string|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 164
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Return type of CI_Session_files_driver::write($session_id, $session_data) should either be compatible with SessionHandlerInterface::write(string $id, string $data): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 233
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Return type of CI_Session_files_driver::destroy($session_id) should either be compatible with SessionHandlerInterface::destroy(string $id): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 313
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Return type of CI_Session_files_driver::gc($maxlifetime) should either be compatible with SessionHandlerInterface::gc(int $max_lifetime): int|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 354
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 284
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: session_set_cookie_params(): Session cookie parameters cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 291
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 306
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 316
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 317
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 318
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 319
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 377
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: session_set_save_handler(): Session save handler cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 110
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: session_start(): Session cannot be started after headers have already been sent
Filename: Session/Session.php
Line Number: 143
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property Weblog::$session is deprecated
Filename: core/Loader.php
Line Number: 1290
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 9
Function: __construct
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$benchmark is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$hooks is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$config is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$log is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$utf8 is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$uri is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$exceptions is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$router is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$output is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$security is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$input is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$lang is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$load is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$db is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$email is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_Loader::$session is deprecated
Filename: core/Loader.php
Line Number: 925
Backtrace:
File: /home/u499335440/domains/softwarecoverage.com/public_html/application/controllers/Weblog.php
Line: 42
Function: view
File: /home/u499335440/domains/softwarecoverage.com/public_html/index.php
Line: 315
Function: require_once
Blog Inner
1. Assess Project Complexity Task Complexity: High: Numerous interconnected tasks, dependencies, and cross-functional teams.Low: Simple, straightforward tasks with minimal dependencies.Technology Complexity: High: Advanced or unfamiliar technology, requiring specialized knowledge.Low: Routine technology or well-known tools and processes.2. Evaluate Project Scope Size of the Project: Large: Involves multiple departments, significant resources, and a large team.Small: Involves a single department, limited resources, and a small team.Duration: Long-term: Spanning several months or years, requiring sustained management.Short-term: Completing within a few weeks or months.3. Consider Project Risk Risk Level: High Risk: Significant potential for budget overruns, delays, or failure.Low Risk: Minimal risks, with predictable outcomes and straightforward execution.Stakeholder Impact: High Impact: Directly affects multiple stakeholders, customers, or critical business functions.Low Impact: Limited impact, affecting a small group or non-critical functions.4. Determine Resource Availability Team Size: Large Team: More people require coordination, communication, and management.Small Team: Easier to manage without dedicated oversight.Budget: Large Budget: Greater financial oversight and control needed.Small Budget: Easier to manage, with less financial complexity.5. Analyze Skill Sets Existing Skills: Available Project Management Skills: Team members with project management experience.Lack of Project Management Skills: Team lacks experience in managing complex projects.Specialization Needs: High Specialization: Requires expertise in scheduling, risk management, and stakeholder communication.Low Specialization: General management skills are sufficient.6. Review Organizational Structure Current Workload: High Workload: Team members already have significant responsibilities.Low Workload: Team members can take on additional project management duties.Support Systems: Strong Support Systems: Established processes and tools for project management.Weak Support Systems: Lack of processes and tools, requiring dedicated management.7. Benefits of a Project Manager Improved Coordination: PMs ensure that all team members are aligned and working towards the same goals. Risk Management: PMs identify potential risks early and develop mitigation strategies. Resource Optimization: PMs ensure optimal use of resources, avoiding overallocation or underutilization. Enhanced Communication: PMs facilitate clear and consistent communication among stakeholders and team members. On-Time Delivery: PMs keep the project on schedule by managing timelines and deadlines. 8. Consider Alternative Roles Project Coordinator: If the project doesn’t require full-scale management, a project coordinator can handle scheduling and basic oversight. Team Leads: Individual team leads can manage their respective areas and coordinate among themselves for smaller projects. 9. Decision-Making Checklist High Complexity, Large Scope, High Risk: Definitely needs a project manager. Moderate Complexity, Moderate Scope, Moderate Risk: Likely needs a project manager or at least a project coordinator. Low Complexity, Small Scope, Low Risk: Might not need a dedicated project manager; team leads or senior members can handle it.Conclusion Deciding whether your project needs a project manager depends on a thorough assessment of its complexity, scope, risks, and resource availability. Projects with high complexity, large scope, significant risks, and large teams generally benefit from having a dedicated project manager to ensure success. Conversely, simpler, smaller projects with minimal risks might be managed effectively without a dedicated PM. Use the criteria outlined above to make an informed decision based on your specific project needs.
You can share this story by using your social accounts:
//php foreach($comments as $row){
//?>