我使用codeigniter和mysql作为db。我知道可能可以用mysql查询解决,但如果有人可以用codeigniter查询解决它会很棒,否则正常的PHP mysql查询也可以工作。
我有3列的表,嗯它有很多领域,但我已经在这里显示了4个肠,我不想创建一个包含许多列但只有1行数据的表。所以相反,我去了这个风格的桌子,因为有人在这个网站上建议我。 问题是我从未使用过这种表格。
SettingsID SettingsKey SettingsValue
----------------------------------------------------------------------
1 | facebookLink | facebook.com
2 | twitterLink | twitter.com
3 | youtubeLink | youtube.com
4 | googlePlusLink | googleplus.com
现在我想运行一个应该将行返回到列的查询。我在网上搜索并找到了一些解决方案,但我对这些新查询并不满意。
我想这个人和我一样有同样的问题,但在他的情况下,他在列中重复了相同的值,其中SettingsKey
具有唯一的所有值。
以下是类似问题的链接:
mysql select dynamic row values as column names, another column as value
我无法理解他的查询和查询我不确定是否对我有用。
请任何人都可以帮我构建一个查询,将SettingsKey
的行值作为列返回。
答案 0 :(得分:1)
这应该有效:
<?php
$db = new PDO('mysql:host=localhost;dbname=DBNAME;charset=utf8', USERNAME, PASSWORD);
$stmt = $db->query("SELECT SettingsKey, SettingsValue FROM Settings");
$links = array();
while($row = $stmt->fetch()) {
$links[$row['SettingsKey']] = $row['SettingsValue'];
}
$db = null;
此代码查询此表,并显示每一行的SettingsKey和SettingsValue。
现在你可以像这样获得facebookLink:
echo $links['facebookLink'];
希望这有帮助。
答案 1 :(得分:0)
$sql = "
SELECT SettingsKey, SettingsValue
FROM Settings
";
$q = $this->db->query($sql);
return $q->result_array();
转到您的控制器
$data['settings'] = $this->model_selection->your_function();
$this->load->view('example', $data);
最后你的观点
<?php if(!empty($settings)): ?>
<?php foreach($settings as $k => $v): ?>
//print your staff in here mix with html and go crazy
<?php endforeach; ?>
<?php endif ?>