![](/img/trans.png)
[英]After fetching a value from DB then assign it to a variable, then i can't use it to the next query
[英]After using a variable I can't use it again
出於某種原因,當我創建一個變量並使用它時,我無法再次使用它,我將它用於 foreach,然后在結束 foreach 后進行 var dump 並將其顯示為空變量
我如何使用變量
<div class="col-md-3 col-sm-4" style="margin-bottom: 25px;">
<h2><?php echo System::translate("Job listings"); ?></h2>
<aside>
<div class="sidebar">
<div class="related-people">
<?php if(Session::get('company_using') == $this->company->company_id): ?>
<div class="pull-right showHideOptions" style="font-size:12px;">
<a href="<?php echo config::get('URL'); ?>company#create" style="color:#127cc3;"><span class="profileIcon"><i class="fa fa-cog"></i></span></a> </div>
<?php endif; ?>
<ul>
<?php if(empty($this->jobs)): ?>
<li><?php echo System::translate("No jobs to show"); ?></li>
<?php endif; ?>
<?php foreach(array_splice($this->jobs, 0,5) as $job): ?>
<li>
<div class="text-box">
<strong class="name">
<a href="<?php echo config::get('URL'); ?>jobs/view/<?php echo System::escape($job->job_id); ?>">
<?php echo System::escape(ucwords($job->job_name)); ?>
</a>
</strong>
<span><i class="fa fa-map-marker"></i>
<?php echo System::escape($job->job_country); ?>
</span>
<span><i class="fa fa-map-marker"></i>
<?php if(strlen($job->job_description) > '85'): ?>
<?php echo substr(System::escape($job->job_description),0,85); ?>...
<?php else: ?>
<?php echo substr(System::escape($job->job_description),0,85); ?>
<?php endif; ?>
</span>
</div>
</li>
<?php endforeach; ?>
<?php var_dump($this->jobs); if(!empty($this->jobs)): ?>
<a class="btn btn-info col-sm-12" href="<?php echo Config::get('URL'); ?>directory/jobs/<?php echo System::escape($this->company->company_id); ?>/all" id="jobs"><?php echo System::translate("Jobs"); ?></a>
<?php endif; ?>
</div>
</div>
</div>
當我使用 foreach 時,日期回顯得很好,但是在使用它和 var_dump 之后我得到:
數組(0){}
我如何啟動變量
//jobs
$jobs = CompanyModel::project_history($company->company_id);
$this->View->renderPage('company/profile', array('jobs' => $jobs))
我如何啟動renderPage
public function renderPage($filename, $data = null)
{
if ($data) {
foreach ($data as $key => $value) {
$this->{$key} = $value;
}
}
require Config::get('PATH_VIEW') . '_templates/header.php';
require Config::get('PATH_VIEW') . $filename . '.php';
require Config::get('PATH_VIEW') . '_templates/footer.php';
}
以及帶有數據的模型(當我使用它時有效,但使用后它變空了
public static function project_history($id = null)
{
//get the user's employment history
$database = DatabaseFactory::getFactory()->getConnection();
//select by session or id
if($id == null):
//the sql we're performing.
$sql = "SELECT *
FROM jobs
WHERE job_user = ?
AND job_enabled = 1
AND job_company = ?";
//run the query
$job = $database->prepare($sql);
$job->execute(array(Session::get('id'), Session::get('company_using')));
else:
//the sql we're performing.
$sql = "SELECT *
FROM jobs
WHERE job_company = ?
AND job_enabled = 1";
//run the query
$job = $database->prepare($sql);
$job->execute(array($id));
endif;
//what where the results?
return $job->fetchAll();
}
所以只是為了澄清,我用模型初始化了我的變量,在我的 html 頁面上,我可以使用該變量一次,然后由於某種原因它清空,知道是什么導致了這種情況?
你寫:
foreach( array_splice( $this->jobs, 0,5 ) as $job )
array_splice()
刪除數組的一部分並將其替換為其他內容(並返回刪除的部分)。
因此,通過此操作,您可以清空數組。
使用for
循環:
for( $i = 0; $i < 5; $i++ )
{
$job = $this->jobs[$i];
}
或者一個簡單的foreach
(你的數組是空的,所以你處理所有的數組元素):
foreach( $this->jobs as $job )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.