检索传递的ID

时间:2011-08-10 18:08:26

标签: php

我想知道你们是否可以帮助我。我有一个名为modules的表,其中包含moduleID,moduleTitle,moduleCode等。

在显示的每个模块旁边填充一个复选框,复选框的值为moduleID。当用户检查模块并单击“提交”时,它们会被传递到另一个页面。在另一个页面上,我已经设法检索已经检查过的模块ID,但是我在转换这些moduleID时遇到了麻烦,因此我可以在这个新页面上显示已经检查过的moduleTitle,moduleCode等。

我使用了以下代码,但没有运气:confused:

  <?php

$cats_upload = "";
    foreach($_POST['module'] as $cats) // errors if no modules are selected
    {
      echo '<p>Module data moduleID: '.$cats.'</p>';

    }
        $sql = mysql_query("SELECT * FROM modules WHERE moduleID ='".$cats."'");


$productCount = mysql_num_rows($sql); //count the output amount

if($productCount > 0){
    while($row = mysql_fetch_array($sql)){  

    $moduleTitle = $row["moduleTitle"];


        $cats_upload .= "<tr><td>$moduleTitle</td></tr>"; 

    }
} else { 
    $cats_upload = "<tr><td>No modules have been selected</td></tr>";
}

?>

如果有人对此可能有任何建议,请告诉我。 感谢

2 个答案:

答案 0 :(得分:2)

$cats_upload = "";

if (!empty($_POST['module'])) {

    foreach ($_POST['module'] as $moduleID) {
      $modules[] = $moduleID;
    }

    $module_list = implode(',', $modules);

    $sql = "SELECT moduleTitle FROM modules WHERE moduleID IN (" . $module_list . ")";
    $result = mysql_query($sql) or die("Error in $sql: " . mysql_error());

    while ($row = mysql_fetch_array($result)) { 
        $cats_upload .= "<tr><td>" . $row['moduleTitle'] . "</td></tr>";
    }

} else {
    $cats_upload .= "<tr><td>No modules have been selected</td></tr>";
}

答案 1 :(得分:1)

$cats = array();
foreach($_POST['module'] as $cat) // errors if no modules are selected
{
  echo '<p>Module data moduleID: '.$cat.'</p>';
  $cats[] = intval($cat); // Assumption: ids are numeric
}
$sql = mysql_query("SELECT * FROM modules WHERE moduleID IN (".implode(',', $cats).")");

这应该会给你一个包含所有匹配模块的SQL结果。