我有两个独立的数组从MYSQL数据库中提取,并希望在键上组合两个数组,所以我可以使用php foreach语句。
*我尝试用两者进行1次查询,但无法弄清楚如何让我的foreach $ video [0]正常工作。*
match_descr =视频代码
m_date = date
SQL
$query = "SELECT match_descr FROM #__bl_match WHERE match_descr != '' ORDER BY m_date DESC";
$db->setQuery($query);
$videomatch = $db->loadResultArray();
$query = "SELECT m_date FROM #__bl_match WHERE match_descr != '' ORDER BY m_date DESC";
$db->setQuery($query);
$videomatch2 = $db->loadResultArray();
PHP
$video = $this->videomatch;
for ($i=1;$i<=1;$i++){
echo '<div id="videoFrame" align="left"><iframe name="videoFrame" title="YouTube video
player" width="560" height="315" src="http://www.youtube.com/embed/' . $video[0] . '" frameborder="0" allowfullscreen=""></iframe></div>';
echo '<br />';
echo '<br />';
echo '<div id="videoThumbnails" align="left">';
echo '<table>';
foreach ($video as $value)
{
echo '<tr>';
echo '<td>';
echo '<a href="http://www.youtube.com/embed/' . $value . '" target="videoFrame"><img height="75px" width="123px" src="http://img.youtube.com/vi/' . $value. '/2.jpg" alt="' . $value . '" /> </a>';
echo '</td>';
echo '<td>';
echo (THIS IS WHERE I WOULD LIKE TO PUT THIS VIDEOS DATE);
echo '<br />';
echo 'California';
echo '<br />';
echo '1-19-2012';
echo '</td>';
echo '</tr>';
}
echo '</div>';}
答案 0 :(得分:0)
您(通常)最好在同一查询中选择两行:
SELECT match_descr, m_date FROM #__bl_match WHERE match_descr != '' ORDER BY m_date DESC
看来你正在使用Joomla。如果是这种情况,我认为你不能使用loadResultArray()
来迭代多个列(你可以给它一个索引来获取其中一个列,但在这种情况下这没有用)。相反,您可以使用loadRowList
来获取列的索引数组,或使用loadAssocList
来获取列的关联数组。
它们可以如下使用(为简洁起见,不使用所有html):
loadRowList:
$query = "SELECT match_descr, m_date FROM #__bl_match WHERE match_descr != '' ORDER BY m_date DESC";
$db->setQuery($query);
$videomatch = $db->loadRowList();
foreach ($videomatch as $row) {
echo "{$row[0]} ({$row[1]})\n";
}
loadAssocList:
$query = "SELECT match_descr, m_date FROM #__bl_match WHERE match_descr != '' ORDER BY m_date DESC";
$db->setQuery($query);
$videomatch = $db->loadAssocList();
foreach ($videomatch as $row) {
echo "{$row['match_desc']} ({$row['m_date']})\n";
}
参考:http://docs.joomla.org/How_to_use_the_database_classes_in_your_script
答案 1 :(得分:0)
我建议您关注。
$query = "SELECT match_descr, m_date FROM #__bl_match WHERE match_descr != '' ORDER BY m_date DESC";
$db->setQuery($query);
$videomatch = $db->loadResultArray();
以下循环只能使用一次。所以我认为你在这里不需要for循环。
for ($i=1;$i<=1;$i++){
你可以改变你的foreach循环,并使用它
foreach ($videomatch as $video)
{
$videoCode = $video['match_descr'];
$date = $video['m_date'];
}
请尝试。如果你想按照你提到的那样使用$video[0]
。将其用作$video[0]['match_descr']
。