PHP用于循环打印阵列
问题描述:
这看起来像一个非常简单的问题,但它让我难住了大声笑。我试图打印从数据库收到的行。我想将行存储在数组中,然后使用for循环打印它们。我知道查询可以工作,但是当我尝试打印数组元素时,它只打印字数组。我已经厌倦了使用foreach循环和简单的for循环。如果任何人都能指出我正确的方向,那将是一种拯救生命的方式。PHP用于循环打印阵列
印刷PHP代码
<?php
$type = "FREE";
$free = getTerms($type);
echo "<p>";
for($j = 0; $j < count($free); $j++)
{
echo "start".$free[$j]."end";
}
echo "</p>";
?>
从数据库
function getTerms($type)
{
$terms = array();
$connection = mysql_open();
$query = "select terms from terms_and_con where accountType='$type' && currentTerms='YES'";
$results = mysql_query($query, $connection) or show_error("signUp.php", "", "");
while($row = mysql_fetch_array($results))
{
$terms[] = $row;
}
mysql_close($connection) or show_error("signUp.php", "", "");
return $terms;
}
答
的$free
阵列中的每个条目本身是一个阵列(从$row
)歌厅的行。
尝试
echo 'start', $free[$j]['terms'], 'end';
或者,你可能会发现一个foreach
环语义上更合适
foreach ($free as $row) {
echo 'start', $row['terms'], 'end';
}
编辑:我建议使用mysql_fetch_assoc()
代替mysql_fetch_array()
如果你只打算使用$row
的关联条目。
答
这个东西是函数mysql_fetch_array(顾名思义)返回一个(在你的情况下都是关联和数字)数组。所以$行实际上是数组(0 =>VALUE, '条款'=> 'VALUE')
那么你正在尝试呼应实际上是一个数组。
简单的解决方法:更换 :
$terms[] = $row;
有:
$terms[] = $row[0];
三江源这么多,你固定它 – Richard
+1要注意,只是因为你只从MySQL中选择一个值,并不意味着它只返回那个元素,它仍然是一个数组中的key =>值对。 – animuson
+1我以为他想打印数组,只是查询中的术语值。 – ace