在php中使用foreach函数问题

时间:2012-09-25 07:59:06

标签: php mysql

我有这个代码,允许我得到一些ID

$sql_id_att="SELECT DISTINCT att_id FROM agenzia_pdv WHERE id_ag='$id_ag'";
$resultuserid_att=mysql_query($sql_id_att) or die(mysql_error());
while ($rows = mysql_fetch_array($resultuserid_att, MYSQL_ASSOC)) {

    $id_att=$rows['att_id'];
    echo $id_att;

}

这是我用来做foreach功能的那个

foreach ($id_att as $attivita_id) {

    ?>
<form action="lista_attivita_ag_modifica.php?&id=<?php echo $attivita_id ; ?>" method="post" enctype="multipart/form-data">
 <input type="hidden" name="form_secret" id="form_secret" value="<?php echo $_SESSION['FORM_SECRET'];?>" />
<input type="submit" name="edit" value="<?php echo $row['attivita_da_promuovere']; ?>" />
</form>

<?php
    }

我在这里做错了什么? 它说:  为foreach提供的参数无效 但是,当我打印$ id_att时它工作正常! 感谢

我有这两个数组:

 $attivita_name[]=$rows['attivita_da_promuovere'
 $id_att[]=$rows['att_id'];

如何使用foreach打印内容,我的意思是我需要打印:

$attivita_name[0]| $id_att[0]
$attivita_name[1]| $id_att[1]
$attivita_name[2]| $id_att[2]

1 个答案:

答案 0 :(得分:4)

您需要将$id_att作为数组

$sql_id_att="SELECT DISTINCT att_id FROM agenzia_pdv WHERE id_ag='$id_ag'";
$resultuserid_att=mysql_query($sql_id_att) or die(mysql_error());

$id_att = array();
$attivita_name = array();
while ($rows = mysql_fetch_array($resultuserid_att, MYSQL_ASSOC)) {
    $attivita_name[]=$rows['attivita_da_promuovere'];
    $id_att[]=$rows['att_id'];
    echo $rows['att_id'];
}

// then you can iterate $id_att using foreach loop here
$result_str = "";
for($i=0 ; $i < count($id_att) ; $i++) {
    $result_str .= $attivita_name[$i] . "|" . $id_att[$i] . "\n";
}
echo $result_str;