如何在php中的两列表中列出数据库中的选定项?

时间:2015-07-14 08:22:00

标签: php mysql

所以这就是我基本上想要做的事情。 我显示了一个成员列表,每个成员旁边都有一个复选框。

就像这样:

[] Spongebob

[] Patrick

[] Squidward

[]桑迪

[] Krab先生

[确定]

每当我选择多个成员,然后单击“确定”,它将导致打印页面。在该打印页面中,我希望成员列在两列中,如下所示:

海绵宝宝|帕特里克|

Squidward |桑迪|

先生。 Krab |

到目前为止,我只是在一个专栏中完成了它。

这是我目前的代码:

if(isset($_POST['ok'])){
if(!empty($_POST['check_list'])) {

$check_list = $_POST['check_list']; 
foreach ($check_list as $selected){
$sql = mysql_query("SELECT * FROM addmember WHERE id = '".$selected."' ORDER BY id");

$limit = 2;
$count = 0;

echo "<table>";

while ($row = mysql_fetch_array($sql)){
    $name = $row ['name'];

    if ($count < $limit){

        if ($count == 0){
            echo "<tr>";
            }

            echo "<td>$name";
        }else{
            $count = 0;
            echo "</tr><tr><td>
            $name</td><tr>";
            }
            $count++;
        }
        echo "</tr></table>";
        }

        echo '<script>window.print();</script>';
        }
    else{

    echo "<script>alert('Please select at least one member.');</script>";
    echo "<script>window.history.go(-1)</script>";
    }
}

非常感谢任何建议和意见..非常感谢。

1 个答案:

答案 0 :(得分:1)

我认为你没有必要,因为你只需要一行。你有点过于复杂的事情。

您需要检查

  • 如果$count为0 - 开始行
  • 如果$count == $limit或者是所有行的最后一项 - 结束行

就是这样。在echo <td>$name之间。

所以试试这个:

if(isset($_POST['ok'])){
  if(!empty($_POST['check_list'])) {

    $check_list = $_POST['check_list'];

    $itemsCount = count($check_list);
    $limit = 2;
    $count = $doneCount = 0;

    echo "<table>";

    foreach ($check_list as $selected){
      $sql = mysql_query("SELECT * FROM addmember WHERE id = '".$selected."' ORDER BY id LIMIT 1");
      $row = mysql_fetch_array($sql);

      $name = $row['name'];

      // Start new row
      if ($count == 0){
        echo "<tr>";
      }

      // Echo name
      echo "<td>".$name."</td>";

      // End row, increment counters
      if (++$count == $limit || $itemsCount == ++$doneCount ){
        $count = 0;
        echo "</tr>";
      }

    }

    echo "</tr></table>";

    echo '<script>window.print();</script>';
  }
  else{
    echo "<script>alert('Please select at least one member.');</script>";
    echo "<script>window.history.go(-1)</script>";
  }
}

++$count递增1然后返回它,所以我们比较并增加一个。请参阅PHP: Incrementing/Decrementing Operators

不再使用mysql_*函数,因为它们已被弃用。而是使用MySQLiPDO

进一步阅读: