我的MySQL表“track”有以下两个字段:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="thumbBrowser">
<ul>
<li class="thumbLeft caseStudy tint tintWhite">
<a href="client-page.html"><img src="images/argus_thumb.jpg" alt="one"></a>
</li>
<li class="thumbRight caseStudy tint">
<img src="images/adr_thumb.jpg" alt="two">
</li>
<li class="hidden thumbLeft caseStudy tint tintWhite">
<img src="images/dd_thumb.jpg" alt="three">
</li>
<li class="hidden thumbRight caseStudy tint">
<img src="images/cdp_thumb.jpg" alt="four">
</li>
<li class="hidden thumbRight caseStudy tint tintWhite">
<a href="client-page.html"><img src="images/pm_thumb.jpg" alt="five"></a>
</li>
<li class="hidden thumbLeft caseStudy tint tintWhite">
<img src="images/argus_thumb.jpg" alt="six">
</li>
</ul>
<div class="cycleButton" id="buttonClick"><img src="images/cycleIcon.png" alt="button"></div>
</div>
值为:
Id (Int)
Name (Varchar 255)
我正在尝试使用以下函数从PHP检索所有曲目:
1 Day 1
2 Day 2
3 Day 3
在phpmyadmin上运行function getTracks() {
$query = sprintf('select * from tracks');
return contentRetrieverDataBaseQuery($query)->fetchAssoc();
}
function contentRetrieverDataBaseQuery($query) {
$settings = contentRetrieverGetSettings();
Database::addConnectionInfo('contentRetriever', 'default', $settings['database_connection']);
db_set_active('contentRetriever');
$result = db_query($query);
db_set_active();
return $result;
}
我得到了正确的结果。
当我这样做时:
select * from event_tracks
我得到输出“1D”,这是Id和名字的第一个字母。
我做错了什么?
编辑:更正了数据库的名称
答案 0 :(得分:1)
->fetchAssoc()
总是返回一行查询结果,这意味着您的数组是单个记录,并且您的循环将把该行的字符串值放入$track
。然后使用$track
就像它是一个数组一样,产生以下代码等价:
$arr = array('abc', 'def'); // your one row of query results.
foreach($arr as $value) {
// $value is now 'abc';
echo $value['name']; // parsed/executed as $value[0];
// output is 'a'
}
字符串可以被视为字符数组,这就是PHP没有抱怨$tracks['name']
的原因。它只是将['name']
视为使用非数字数组索引的愚蠢尝试,并将其转换为0
。