php使用$ _POST方法解析具有多个属性的数组

时间:2013-10-28 09:18:36

标签: php sql arrays

我正在尝试通过$_POST方法解析数组的单行,但是该行有多个属性。请参考以下代码:

<?php
    $propertiesSQL = mysql_query("SELECT id, name FROM property_name WHERE cat_id = $mainid");
?>
<table>
    <form action="newadvert.php" method="post">
        <?php
            while ($propertynames = mysql_fetch_array($propertiesSQL)){
                ?>
                <tr>
                    <td><?=($propertynames[1])?></td>
                    <td><input name="<?=($propertynames[1])?>" type="text" id=""></td>
                </tr>
                <?php
            }
        ?>
        <tr>
            <td colspan=2><input type="submit" name="submit" value="Verzenden"></td>
        </tr>
    </form>
</table>

我要做的是使用$propertynames[1]方法在newadvert.php文件中检索该数组$_POST,并将其所有属性分配给不同的字符串,以便我可以轻松地使用它们单独一点。可能是因为我使用了一种完全错误的方法来使用它,所以我很乐意采用不同的方法来实现这一点。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

添加像这样的增量器

<?php
            $i=0; //An incrementer variable
            while ($propertynames = mysql_fetch_array($propertiesSQL)){
                ?>
                <tr>
                    <!-- Access it as $properynames[$i] instead of #propertynames[1] -->
                    <td><?=($propertynames[$i])?></td> 
                    <td><input name="<?=($propertynames[$i])?>" type="text" id=""></td>

                </tr>
                <?php
            $i++;//Increment here
            }
        ?>

答案 1 :(得分:0)

试试这个:

<?php
    $propertiesSQL = mysql_query("SELECT id, name FROM property_name WHERE cat_id = $mainid");
?>
<table>
    <form action="newadvert.php" method="post">
        <?php
            while ($propertynames = mysql_fetch_array($propertiesSQL)){
                ?>
                <tr>
                    <td><?=($propertynames['name'])?></td>
                    <td><input name="<?=($propertynames['name'])?>" type="text" id=""></td>
                </tr>
                <?php
            }
        ?>
        <tr>
            <td colspan=2><input type="submit" name="submit" value="Verzenden"></td>
        </tr>
    </form>
</table>

Use associative array here.
  • 感谢

答案 2 :(得分:0)

好吧,所以我找到了问题的解决方案。

<?php
    $propertySQL = mysql_query("SELECT id, name FROM property_id WHERE cat_id = $mainid");
?>
<table>
    <form action="newadvert.php" method="post">
        <?php
            while ($propertynames = mysql_fetch_array($propertySQL)){
                ?>
                <tr>
                    <td><?=($propertynames['id'])?></td>
                    <td><input name="name<?=($propertynames['id'])?>" type="text" id=""></td>
                </tr>
                <?php
                }
            ?>
            <tr>
                <td colspan=2><input type="submit" name="submit" value="Submit"></td>
            </tr>
    </form>
</table>

请注意对文本框的更改:input name="name<?=($propertynames['id'])?>"

然后,在newadvert.php文件中,我再次执行propertySQL,并创建一个while循环来匹配所有内容:

$propertySQL = mysql_query("SELECT id, name FROM property_name WHERE cat_id = $mainid");
while ($propertyids = mysql_fetch_array($propertySQL)){
    $propid = $propertyids[0];
    echo 'name' . $propid . '<br />';
    $input = $_POST['name'.$propid];
    echo $input . "<br />";
}

我从未知道在&lt;之前检索$_POST时可以添加变量。&lt;

无论如何,感谢您的帮助,这是因为你们,我有这样的想法:)