【发布时间】:2016-12-15 07:28:29
【问题描述】:
我正在使用 Laravel 5。我想列出所有数据库名称 下拉列表,但我总是最终获取最后一个值。我已经在使用 foreach 循环,仍然没有任何反应。这是我的代码:
public function create(Request $request)
{
//echo "<pre>";
$sqlconn = mysqli_connect('127.0.0.1', 'root', '1234');
$showdb = "SHOW DATABASES";
$dbconn = mysqli_query($sqlconn, $showdb);
$dbnames = array();
while ($row=mysqli_fetch_assoc($dbconn)) {
$dbnames = $row;
foreach ($dbnames as $dbname => $value) {
if ($value != "information_schema" && $value != "performance_schema" && $value != "test" && $value != "mysql") {
//$dblists = implode(":", array($value));
$dblists = $value;
//print_r($dblists);
}
}
}
//die();
}
And here's my html codes:
<div class="col-md-12">
<div class="form-group @if($errors->has('description')) has-error @endif">
<div class="col-xs-2">
<label for="reports_description" class="control-label"><h5><b>Select Database:</b></h5></label>
</div>
<div class="col-xs-5">
<select class="form-control">
<option>---SELECT---</option>
<option value="{{$dblists}}">{{$dblists}}</option>
</select>
</div>
</div>
</div>
【问题讨论】:
-
需要注意的两件事 - 1. 您将
$dblists初始化为变量而不是数组 2.$dblists正在 foreach 循环内进行初始化 - 因此它将仅包含 @987654324 @ 来自循环的最后一次迭代。您应该在 foreach 循环之外初始化$dblists=[];,然后在 foreach 循环中的if条件内,$dblists[] = $value将继续将值推入$dblists数组;