【发布时间】:2018-09-05 03:59:05
【问题描述】:
<?php
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', null);
define('DB_DATABASE', 'publicacoes');
define('DB_PREFIX', 'bn');
define('DB_CHARSET', 'utf8');
?>
<?php
function DBclose($link){
@mysqli_close($link) or die(mysqli_error($link));
}
function DBConnect(){
$link = @mysqli_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE) or die(mysqli_connect_error());
mysqli_set_charset($link, DB_CHARSET) or die(mysqli_error($link));
return $link;
}
?>
<?php
function DBRead($table, $params = null, $fields = '*'){
$table = DB_PREFIX.'_'.$table;
$params = ($params) ? " {$params}" : null;
$query = "SELECT {$fields} FROM {$table}{$params}";
$result = DBExecute($query);
if(!mysqli_num_rows($result))
return false;
else{
while ($res = mysqli_fetch_assoc($result)){
$data[] = $res;
}
return $data;
}
}
function DBExecute($query, $insertId = false){
$link = DBConnect();
$result = @mysqli_query($link, $query) or die(mysqli_error($link));
if($insertId)
$result = mysqli_insert_id($link);
DBClose($link);
return $result;
}
?>
<?php
$publicacao = DBRead('publicacao');
foreach ($publicacao as $pl):
endforeach;
?>
<? foreach ($publicacao as $pl): ?>
<li>
<h4><a href="#"><?php echo $pl['title']?></a></h4>
<h5><?php echo $pl['text']?><a href="%">Continue lendo »</a></h5>
</li>
<? endforeach; ?>
<? foreach ($publicacao as $pl): ?>
<li>
<h4><a href="#"><?php echo $pl['title']?></a></h4>
<h5><?php echo $pl['text']?><a href="%">Continue lendo »</a></h5>
</li>
<? endforeach; ?>
我在变量$publicacao 中放了一个var_dump,这没关系,但我的foreach 只在li 上打印出一条记录。怎么了?
我该如何解决这个问题?我在 Stackoverflow 上没有发现任何类似的问题。我无法找到问题所在。我是使用 MYSQLi 的新手 我尽力了,但这个问题让我有点头疼。
编辑:
来自print_r($publicacao)的结果
Array ( [0] => Array ( [id] => 33 [title] => 第一个标题 [text] => 第一个文本 ) [1] => Array ( [id] => 34 [title] = > 第二个标题 [文本] => 第二个文本 ) )
【问题讨论】:
-
你知道你有
foreach ($publicacao_和foreach ($publicacao,其中两个前锋在$publicacao之后没有_ -
在这一行
$publicacao_ = DBRead('publicacao');你的变量是$publicacao_和_但在foreach 循环中你缺少_并且你使用了$publicacao。 -
可能只是你的浏览器没有显示其他项目,因为你错过了
<ul>stackoverflow.com/questions/2031725/… -
您能否与我们分享您的脚本,我认为您添加到问题中的那部分没有任何问题。
-
我同意@Kerkouch,问题在于您未显示的代码。我用您的示例数据测试了您的代码,没有发现任何问题 - 3v4l.org/Ehb2a
标签: php arrays database foreach