我想知道你们是否可以帮助我。我有一个名为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>";
}
?>
如果有人对此可能有任何建议,请告诉我。 感谢
答案 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结果。