这可能看起来像一个非常简单的问题,但它让我难过了哈哈。我正在尝试打印从数据库收到的行。我想将行存储在数组中,然后使用for循环打印它们。我知道查询有效,但是当我尝试打印数组元素时,它只打印单词数组。我厌倦了使用foreach循环和简单的for循环。如果有人能指出我正确的方向将是一个救生员。
打印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;
}
答案 0 :(得分:5)
$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
。
答案 1 :(得分:1)
事情是函数mysql_fetch_array(顾名思义)返回一个(在你的情况下是关联和数字)数组。所以$ row实际上是数组(0 =&gt; VALUE ,'terms'=&gt;' VALUE ')
所以你想要回应的是一个数组。
简单修复: 替换:
$terms[] = $row;
使用:
$terms[] = $row[0];