我有一个PHP代码,它从下拉选项中获取'empfullname',并根据选择显示时间卡。但是,我想让它能够允许用户选择“全部”,它只打印所有可用的员工。我想我必须用foreach循环做这个,但我似乎无法让它工作。这是我认为我需要的if语句。
if ($empfullname == 'All') {
$query = "select * from ".$db_prefix."employees order by empfullname asc";
$result = mysql_query($query);
$tmp_empfullname = stripslashes("".$row['empfullname']."");
foreach ($tmp_empfullname){
print timecard_html($empfullname,$local_timestamp_in_week);
}
} else {
print timecard_html($empfullname,$local_timestamp_in_week);
}
print '<script language="JavaScript" type=
"text/javascript" src="../scripts/jquery.totals3.js"></script>';
print <<<End_Of_HTML
<table align="center" border="0" cellpadding="0" cellspacing="3" class="buttons">
<tr><td><a href="timecardrpt.php"><img src=
"../images/buttons/done_button.png" border="0" /></a></td></tr>
</table>
End_Of_HTML;
include '../footer.php';
答案 0 :(得分:1)
这是一个巨大的混乱,很明显你没有很好地思考逻辑或结构,你还没有看过很多PHP MySQL函数的例子。您应该关注大量的示例和教程。关于foreach,您需要了解how foreach works。具体而言,语法为foreach ($myArray as $value)
,而不仅仅是foreach ($myArray)
。还有很多其他的东西。
$tmp_empfullname
,但语句块中有$empfullname
。这应该解决它:
//Do your mysqli connection here. it's different from the mysql connection.
if ($empfullname == 'All') {
$query = "select * from ".$db_prefix."employees order by empfullname asc";
} else {
$query = //put a SQL query here
}
if ($result = mysqli->query($query)){
while ($row = $result->fetch_assoc()){ //you could also do foreach ($result as $row)
print timecard_html(stripslashes($row['$empfullname']), $local_timestamp_in_week);
}
}
答案 1 :(得分:0)
问题在于你是在调用这个$ row而没有在foreach中声明它所以你应该在$result = mysql_query($query);
之后创建代码:
foreach ($result as $row) {
$tmp_empfullname = stripslashes("".$row['empfullname']."");
}
完成后,您应该只需要使用Aleatoric来获取$tmp_empfullname
变量中的每个名称。