0

需要一点帮助、建议或链接到示例或有用的教程,以便我可以学习。因为我对编程很陌生。

我在名为“ore1”到“ore11”的表单中有 11 个选择框,它们将数据发送到 $_POST。这个小块将其转换为用于另一个函数的数组。

//function calculateValue($sellValue){  -- add when you figure it out
    if(isset($_POST['submit'])){
      $i = 11                           //total number of select boxes
      $pdquery = "SELECT * FROM ore
                  WHERE '".$_POST['ore1']."' 
                  LIKE id";
      $result = mysql_query($pdquery);
          $oredata1 = array();
             while ($row = mysql_fetch_row($result)) {
                  $oredata1 = $row; }
}
else {}
}

我希望能够在所有 11 个选择框上使用这一位代码,而不必通过获取复制它 11 次

.$_POST['ore#'].   //5th line
$oredata# = $row;  //10th line

根据所使用的选择框将 # 替换为适当的 #。

有小费吗??提前致谢。

4

3 回答 3

1

在您的 HTML 中:

<select name="ore[]">
...
</select>
<select name="ore[]">
...
</select>

在你的 PHP

if(isset($_POST['submit']) && isset($_POST['ore'])){
    foreach($_POST['ore'] as $ore){
        $ore = (int)$ore;
        $pdquery = "SELECT * FROM ore WHERE id = $ore";
        ...
    }
}

也不要使用mysql_*函数,因为弃用过程已经开始

于 2012-09-13T06:12:39.903 回答
0
for ($i = 1; $i <= 11; $i++) {
  $ore = 'ore'.$i;
  $pdquery = "SELECT * FROM ore WHERE '".$_POST[$ore]."' like id";
  ...
于 2012-09-13T06:14:46.947 回答
-2

在 for 循环中执行它 - 从 1 到 11。然后你可以使用变量 $i 来访问东西。

// I assume that there is some MySQLi object called $mysqli already present. You'll have to create it if it does not
if(isset($_POST['submit'])){
    $pdquery = 'SELECT * FROM ore WHERE id LIKE ?';
    $oredata = array();

    if($stmt = $mysqli->prepare($pdquery)) {
        for($i = 1; $i < 12; $i++) {
            $ore = 'ore' . $i;
            if(empty($_POST[$ore])) {
                 continue;
            }
            $oreValue = (int)$_POST[$ore];

            $stmt->bind_Param('i', $oreValue);
            $stmt->execute(); 

            $oredata[$i] = $stmt->get_result()->fetch_array(MYSQLI_ASSOC);
        }
    }
    $stmt->close();
}

这没有考虑到可能不仅仅是这十一个输入的事实。在 HTML 端使用数组肯定会更干净(你只需要用 foreach-loop 替换 for-loop 并使用 key 而不是$ore

于 2012-09-13T06:12:15.553 回答