将数组元素分配给变量PHP循环


Assigning array elements to variables PHP loop

我有一个数组,其中包含用户当前正在服用的药物名称。在网页上,我想在单选按钮旁边显示当前正在服用的每种药物的名称。我对数组的代码是;

//Current Entries Section
$CurrentMedsQuery = "SELECT Name FROM `".$username."medication` WHERE Status='Current';";
$RunMedsQuery = mysql_query($CurrentMedsQuery) or trigger_error(mysql_error().$CurrentMedsQuery);
$Count = mysql_num_rows($RunMedsQuery);
$CurrentMedsArray = array();
while ($CurrentMedEntries = mysql_fetch_array($RunMedsQuery)) {
    array_push($CurrentMedsArray,$CurrentMedEntries['Name']);
    }
    $session =& JFactory::getSession();
    $session->set('CurrentMedsArray', $CurrentMedsArray);   
    while ($Count < 0) {
    }
    $FirstMedEntry = ($CurrentMedsArray["0"]);

然后在我的HTML表单上,我有以下代码,它成功地显示了数组中第一个元素的名称;

<form method="post" name="currentmeds" action="">
<input type="radio" name="med1" value="med1"><?php echo $FirstMedEntry;?><br>
</form>

但我的问题是,我不知道用户当前有多少药物条目,因此我不能连续使用echo $FirstMedEntry, echo $SecondMedEntry等。我想我需要某种循环,如果能提供帮助,我将不胜感激!

提前感谢!

根据建议更改为以下内容;

//Current Entries Section
echo '<form method="post" name="currentmeds" action="">';
$CurrentMedsQuery = "SELECT Name FROM `".$username."medication` WHERE Status='Current';";
$RunMedsQuery = mysql_query($CurrentMedsQuery) or trigger_error(mysql_error().$CurrentMedsQuery);
$Count = mysql_num_rows($RunMedsQuery);
$count = 1;
while ($CurrentMedEntries = mysql_fetch_row($RunMedsQuery)) {
    echo '<input type="radio" name="med' . $count . '" value="med' . $count . '">' . $CurrentMedEntries . '<br>';
    $count++;
}
echo '</form>';

但现在收到这个错误;注意:数组到字符串的转换在C:''examplep''htdocs''Joomla Lifestyle''components''com_jumi''files''medication.php的238行

238行:

echo '<input type="radio" name="med' . $count . '" value="med' . $count . '">' . $CurrentMedEntries . '<br>';

$CurrentMedsArray包含您的所有数据,因此您可以循环使用它并显示值:

<form method="post" name="currentmeds" action="">
    <?php foreach ($CurrentMedsArray as $key => $entry): ?>
    <input type="radio" name="med<?=$key+1?>" value="med<?=$key+1?>"><?=$entry;?><br>
    <?php endforeach ?>
</form>

如果不需要该数组,则可以修改该数组并将其显示在while循环中。还要注意,<?=$var;?><?php echo $var; ?>的简短语法。

您不需要使用数组,我建议您不要使用。只需执行以下操作:

<?php   
echo '<form method="post" name="currentmeds" action="">';
$CurrentMedsQuery = "SELECT Name FROM `".$username."medication` WHERE Status='Current'";
$RunMedsQuery = mysql_query($CurrentMedsQuery) or trigger_error(mysql_error().$CurrentMedsQuery);
$Count = mysql_num_rows($RunMedsQuery);
$count = 1;
while ($CurrentMedEntries = mysql_fetch_row($RunMedsQuery)) {
    echo '<input type="radio" name="med' . $count . '" value="med' . $count . '">' . $CurrentMedEntries['name'] . '<br>';
    $count++;
}
echo '</form>';
?>

尽管我强烈建议您不要使用mysql_。请改用mysqli_PDO