为每个循环显示单独的结果

时间:2014-05-23 19:46:02

标签: php if-statement foreach

我有一个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';

2 个答案:

答案 0 :(得分:1)

这是一个巨大的混乱,很明显你没有很好地思考逻辑或结构,你还没有看过很多PHP MySQL函数的例子。您应该关注大量的示例和教程。关于foreach,您需要了解how foreach works。具体而言,语法为foreach ($myArray as $value),而不仅仅是foreach ($myArray)。还有很多其他的东西。

  1. 您不会在&#34; else&#34;中运行任何查询。块。
  2. 您不会从结果中获取行。
  3. 您使用已弃用且不安全的mysql函数,而不是mysqliPDO
  4. 您的变量名称不一致(您的foreach中有$tmp_empfullname,但语句块中有$empfullname
  5. 严格地说,你不需要一个foreach循环,因为一段时间工作正常。你可以使用foreach,但是meh。
  6. 这应该解决它:

    //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变量中的每个名称。