我在页面底部的foreach echo循环中只得到一个打印结果。
<?php
defined('_JEXEC') or die('Restricted access');
$db =& JFactory::getDBO();
$query0 = "SELECT * FROM `jos_ginfo` WHERE . . . LIMIT 30";
//echo $query0;
$db->setQuery($query0);
$ginfo = $db->loadObjectList();
//echo
//$ginfo[0];
foreach($ginfo as $ginfo[$i]):
{$i=0; $i++;}
endforeach;
echo $db->getErrorMsg();
if(empty($ginfo)){
echo "<center>No
game found, try a different entry.</center>";
}else{
$pgndata = array ( $ginfo[$i]->Id);
$i=0;
foreach($pgndata as $ginfo[$i]->Id):
//I am only getting one printed result!
{
echo "<a href='/index.php?option=com_publishpgn&tactical-game=".$ginfo[$i]->Id."&Itemid=78.html'>\n";
echo "".$ginfo[$i]->White." v. ".$ginfo[$i]->Black." (".$ginfo[$i]->Result.") ".$ginfo[$i]->EventDate." ECO:".$ginfo[$i]->ECO."</a><br>\n";
$i++;
}
endforeach;
//echo "</div>";
}
?>
答案 0 :(得分:0)
我想,你需要这个:
$ginfo = $db->loadObjectList();
foreach($ginfo as $value)
{
echo $value . '<br />';
}
答案 1 :(得分:0)
这是Sarfraz代码的修改版本。
试试这个..
// Array of multiple games
$ginfo = $db->loadObjectList();
// Loop through games array
foreach ($ginfo as $index => $singleGameInfo)
{
foreach($singleGameInfo as $elementName => $elementValue)
{
echo "[$elementName \"$elementValue\"]\n";
}
}
取代......
echo "[Event \"".$ginfo[0]->Event."\"]\n";
echo "[Site \"".$ginfo[0]->Site."\"]\n";
echo "[Date \"".$ginfo[0]->Date."\"]\n";
echo "[Round \"".$ginfo[0]->Round."\"]\n";
echo "[White \"".$ginfo[0]->White."\"]\n";
echo "[Black \"".$ginfo[0]->Black."\"]\n";
echo "[Result \"".$ginfo[0]->Result."\"]\n";
echo "[ECO \"".$ginfo[0]->ECO."\"]\n";
echo "[WhiteElo \"".$ginfo[0]->WhiteElo."\"]\n";
echo "[BlackElo \"".$ginfo[0]->BlackElo."\"]\n";
echo "[Annotator \"".$ginfo[0]->Annotator."\"]\n";
echo "[SetUp \"".$ginfo[0]->SetUp."\"]\n";
编辑:您是否尝试循环播放多个游戏或单个游戏的现场数据?
Edit2:已更新以循环游戏
答案 2 :(得分:0)
$ query = mysql_query(“select * from table
”);
while($ result = mysql_fetch_array($ query)) { echo“$ result [id]”; echo“$ result [firstname]”;
}
答案 3 :(得分:0)
代码中的一些错误:
foreach($ginfo as $ginfo[$i]):
{$i=0; $i++;}
在第一次迭代中,$i
未定义,因此从$ginfo
拉出的第一个foreach循环值将存储在$ginfo[null]
中。然后,将$i
设置为0,递增它,然后循环,所以现在下一个值存储在$ginfo[1]
中,所有进一步的迭代也是如此。因此,您最终只能从$ginfo
对象中提取两个值,并存储在“null”和“1”键中。
稍后,你做
$pgndata = array ( $ginfo[$i]->Id);
你没有在循环中执行此操作,因此$pgndata
成为一个数组,其中包含一个取自$ginfo[1]->Id
的元素。然后你马上做
foreach($pgndata as $ginfo[$i]->Id):
但是$pgndata
中只有一个元素,这就解释了为什么你只有一个项目输出。
我不知道你顶部的->loadObjectList()
是什么。它返回一个数组吗?一个东西?如果它是任何数组,第一个foreach循环的重点是什么?你正在摧毁除了前两个值之外的所有值。
在foreach循环中循环遍历数组时尝试修改数组永远不是一个好主意。这有点像试图改变你的车上的轮胎和车轴和变速箱,同时沿着高速公路行驶100英里每小时。你可能会幸运一次,剩下的时间你会被涂成薄薄的番茄酱。
另外,为什么要混用{}
和:
/ end
语法?选择其中一个,但不要同时使用两个。大括号是标准的,普遍理解。 :/ end版本对大多数人来说远不那么受欢迎和不熟悉。