检索名称中包含另一个变量的变量

时间:2014-04-17 22:55:41

标签: php mysql sql forms

Dunno如果标题有意义,但是我有一个变量,它会以基本术语表示它将被称为:

$_POST['something'+$variable2]

我有一个用于编辑所选记录的表单,此表单包含所有先前选择的记录的条目:

<form name="input" action="editcar.php" method="POST">
                    <input type="submit" value="Yes">

    while($row = mysqli_fetch_assoc($result)) 
                    {
                    echo'
</div>     
                    <table style="color:white">
                        <tr>
                            <td style="text-align:right">Manufacture:</td><td><input type="text" name="manufacture'.$row['carIndex'].'" value="'.$row['make'].'"></td> 
                            <td style="text-align:right">Model:      </td><td><input type="text" name="model'.$row['carIndex'].'" value="'.$row['model'].'"></td>
                        </tr>
                        <tr>
                            <td style="text-align:right">Colour:     </td><td><input type="text" name="colour'.$row['carIndex'].'" value="'.$row['colour'].'"></td>
                            <td style="text-align:right">Reg:        </td><td><input type="text" name="reg'.$row['carIndex'].'" value="'.$row['Reg'].'"></td>
                        </tr>
                        <tr>
                            <td style="text-align:right">Price:      </td><td><input type="text" name="price'.$row['carIndex'].'" value="'.$row['price'].'"></td>
                            <td style="text-align:right">Mileage:    </td><td><input type="text" name="mileage'.$row['carIndex'].'" value="'.$row['miles'].'"></td>
                        </tr>
                        <tr>
                            <td style="text-align:right">Max MPH:    </td><td><input type="text" name="mph'.$row['carIndex'].'" value="'.$row['mph'].'"></td>
                            <td style="text-align:right">MPG:        </td><td><input type="text" name="mpg'.$row['carIndex'].'" value="'.$row['mpg'].'"></td>
                        </tr>   
                    </table>

                </form>

            </div> ';

                }
                ?>
                </form> 

为之前选择的每条记录循环表单,以启用批量编辑。当我意识到我有多个具有相同名称的输入时,这一点就会引起我的注意:

<input type="text" name="model'.$row['carIndex'].'" value="'.$row['model'].'">

将目前已经厌倦的记录的主键放在它的名字的末尾。这似乎是一种合乎逻辑的方式。

但是现在我需要调用这些变量放在mysql查询中,我不知道怎么做,或者即使我可以。

我将所选记录保存在一个数组中,所以我有:

foreach ($postid as $carID) 
   {  
      $query = "stuff";
      mysqli_query($db, $query);
   } 

每个循环都有$ carID,其中包含放在表单输入名称末尾的变量。

类似于:

$_POST['something'+$variable2]

是我能想到的全部但不起作用。

任何适用于我的整体代码的方法都是受欢迎的,而不仅仅是我已经解决的问题的解决方案。

3 个答案:

答案 0 :(得分:1)

PHP使用点进行连接,而不是像Java和Javascript一样:

 $_POST['something' . $variable2]

答案 1 :(得分:1)

实际上你的方式应该有效。只需将+替换为.中的$_POST['something'+$variable2]即可。 我的提示是:在html中使用数组作为名称:

<input type="text" name="model[]" value="'.$row['model'].'">

在php-Side上,你现在可以循环遍历所有$_POST['model']

您也可以为html中的每个条目添加索引:

<input type="text" name="model['.$row['carIndex'].']" value="'.$row['model'].'">

答案 2 :(得分:0)

尝试这样的事情:

<form ...>

<?php
 while($row = mysqli_fetch_assoc(...):
   $index =  $row['carIndex'];

?>

<input type="text" name="carmodel[<?php echo $index?>][model]" value="<?php echo $row['model'] ?>">

<?php endforeach; ?>

</form>

这样你就可以将$ _POST ['carmodel']中存储的数据作为carIndex值索引的数组,因为$ _POST中的数据结构是由输入名称定义的,这里你的名字就像carmodel [1 ] [模型]例如那么在帖子中它将在$ _POST ['carmodel'] [1] [model]

你也可以在这里阅读 How would I create this array structure in an HTML form?