php - 我的 if 语句没有按预期工作
问题描述
此代码根据我在列上有多少数据来复制元标记,entry_type
独立于我所在的页面entry_type
是post
还是pagina
页面。它正在从和打印出meta
标签。if
else
$mt = $conn->query("SELECT entry_type FROM bn_publicacao")->fetchAll();
foreach ($mt as $FB) {
if ($FB['entry_type'] == 'pagina'){
echo '<meta property="og:type" content="website">';
} else{
echo '<meta property="og:type" content="article">';
echo '<meta property="article:author" content="">';
echo '<meta property="article:publisher" content="">';
echo '<meta property="article:published_time" content="">';
echo '<meta property="article:modified_time" content="">';
}
}
编辑:我解决了重复的问题
$mt = $conn->query("SELECT entry_type FROM bn_publicacao WHERE entry_type IS NOT NULL GROUP BY entry_type")->fetchAll();
foreach ($mt as $FB) {
if ($FB['entry_type'] == 'pagina'){
echo '<meta property="og:type" content="website">';
} else{
echo '<meta property="og:type" content="article">';
echo '<meta property="article:author" content="">';
echo '<meta property="article:publisher" content="">';
echo '<meta property="article:published_time" content="">';
echo '<meta property="article:modified_time" content="">';
}
}
但我仍然有两个问题,if
并且else
同时打印出来。
结果来自print_r
:
$mt = $conn->query("SELECT entry_type FROM bn_publicacao WHERE entry_type IS NOT NULL GROUP BY entry_type")->fetchAll();
foreach ($mt as $FB) {
print_r($mt); //Result 1
if ($FB['entry_type'] == 'pagina'){
print_r($mt); //Result 2
//code posted on the question
} else{
print_r($mt); //Result 3
//code posted on the question
}
}
- 结果1:
数组 ( [0] => 数组 ( [entry_type] => pagina [0] => pagina ) [1] => 数组 ( [entry_type] => post [0] => post ) ) 数组 ( [0] =>数组([entry_type] => pagina [0] => pagina)[1] => 数组([entry_type] => post [0] => post))
- 结果 2:
数组 ( [0] => 数组 ( [entry_type] => pagina [0] => pagina ) [1] => 数组 ( [entry_type] => post [0] => post ) )
- 结果 3:
数组 ( [0] => 数组 ( [entry_type] => pagina [0] => pagina ) [1] => 数组 ( [entry_type] => post [0] => post ) )
我的代码有什么问题?我该如何解决?
解决方案
fetchColumn
只返回一个结果,fetchColumn。您可以使用fetchAll将所有结果作为数组返回。
您需要遍历结果,因为它将是一个数组。下面的代码:
$mtFBs = $conn->query("SELECT entry_type FROM bn_publicacao")->fetchAll();
foreach ($mtFbs as $mtFb) {
if ($mtFB['entry_type'] == 'pagina'){
echo '<meta property="og:type" content="website">';
} else{
echo '<meta property="og:type" content="article">';
echo '<meta property="article:author" content="">';
echo '<meta property="article:publisher" content="">';
echo '<meta property="article:published_time" content="">';
echo '<meta property="article:modified_time" content="">';
}
}
推荐阅读
- python - 在python中的字符串末尾添加一个递增的数字
- php - 抽象控制器
- python - Python:目录搜索和修改
- python - 数据类型不一致
- reactjs - 错误:“extract-text-webpack-plugin”加载器在没有相应插件的情况下使用
- eclipse - eclipse egit github OSX 配置
- c++ - Unsigned char * 添加了 int?这是做什么的?
- c# - 使用 WMI 在 C# 中启动 Hyper_V 客户端
- python-3.x - Beautiful Soup / urllib 不读取某些 HTML 标签
- python - 逐行写入文件Python