我将数据库表id
数字附加到动态呈现的按钮上,如下所示:
echo '</div><!-- close formRowDiv -->';
echo '<div class="buttonDiv">';
echo '<input type="submit" id="buttonUpdate_' . $row[ 'id' ] . '" name="buttonUpdate_' . $row[ 'id' ] . '" class="button" value="Update Trouble Log Entry">';
echo '</div><!-- closes updateDiv -->';
因此,当单击时,我最终得到$_POST[ 'buttonUpdate_1' ]
,例如在引用的数据库表中作为id#1。现在我想从$ _POST var名称中提取 1 。
我假设我需要使用preg_replace
,但是不能考虑如何在模式中使用var name来提取id #adored。我一直在谷歌搜索,似乎无法找到我所需要的。那么如何在preg_replace
中将var名称解析为文字字符串以提取并将其中的一部分分配给新的var?
答案 0 :(得分:4)
虽然不像你问的那样是一个preg-replace解决方案,如果我正确地读了你的问题,你希望能够对表中的行做一些附加的id号。
如果是这样,您可以首先在表中查询最高值id,并将其用作for循环中的计数器。然后使用for循环,你可以循环到表中的所有行,直到你的$ _POST [&#39; buttonDisplay_1&#39;找到/匹配变量。
匹配后,您可以获取返回的查询行的ID号,并使用抓取的ID号对该行执行任何操作。也许是这样的:
$sql_query_to_find_high_id = "SELECT * FROM table ORDER BY id DESC LIMIT 1";
$result=mysqli_query(dbcon(), $sqlQHighId);
while ($row=mysqli_fetch_array($result)){high_id_number=$row['id'];}
查找表中分配的最高ID。然后通过使用那个高ID号作为你的计数器来循环:
for($i=0; $i<$high_id_number; $i++){ // cycle thru all rows in table to find a match for ID appended to $_POST[ 'buttonDisplay_1' ]
if(isset($_POST["buttonUpdate_$i"])){
$id=$i;
$sql_update_statement="UPDATE table SET column=value WHERE id='$id'";
}
答案 1 :(得分:1)
以数组样式命名输入字段。我不知道它的正确名称。无论如何,它看起来像这样:
echo '<input type="text" name="myinput[' . $row[ 'id' ] . ']">';
如果您发布数据,您将获得一个包含输入字段数据的数组。所以,如果你写
foreach ($_POST['myinput'] as $id => $input) {
echo $id;
echo $input;
}
它将逐行返回输入字段的数据。