0

私がこれを学ぶことができるように、少しの助け、アドバイス、または例や有用なチュートリアルへのリンクが必要です。私は一般的にプログラミングに非常に慣れていないので。

$_POSTまでのデータを送信する「ore1」から「ore11」という名前のフォームに11個の選択ボックスがあります。この小さなブロックは、それを別の関数で使用される配列に変換します。

//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 {}
}

この1ビットのコードを、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

1から11までのforループで実行します。次に、変数$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();
}

これは、これらの11個の入力以上のものがある可能性があるという事実を考慮していません。HTML側で配列を使用すると、確かにクリーンになります(for-loopをforeach-loopに置き換えて、代わりにキーを使用する必要があります$ore

于 2012-09-13T06:12:15.553 に答える