gpt4 book ai didi

php - 无法使用 foreach() 和 $_POST[] 获取 id

转载 作者:行者123 更新时间:2023-11-29 23:47:51 26 4
gpt4 key购买 nike

好的, friend 们,

我有两张 table

第一个表:social_networks

social_networks table

第二个表:members_social_accounts

members_social_accounts table

在用户控制面板中,我有一个页面包含一个表单,其中列出了所有社交网络;每一个的前面都有一个输入文本框。

当成员(member)打开该页面时,他将看到列出的所有社交网络,如果他之前在任何社交网络中添加了自己的帐户,那么他将在文本框中看到它,否则,文本框将为空。我使用了以下代码:

$s = mysqli_query($link, "SELECT social_networks.network_id, social_networks.network_name, members_social_accounts.member_account FROM social_networks LEFT JOIN members_social_accounts ON social_networks.network_id = members_social_accounts.network_id AND members_social_accounts.member_id = '$member_id' ORDER BY social_networks.network_id");
while($i = mysqli_fetch_assoc($s)){
$network_id = $i['network_id'];
$network_name = $i['network_name'];
$member_account = $i['member_account'];
}

输入框为:

<?=$network_name;?> = <input type="text" name="ids[<?=$network_id;?>]" id="<?=$network_id;?>" value="<?=$member_account;?>" /><br />

现在,我想做的是当用户更新页面(提交表单)时,我希望代码通过以下步骤更新数据库:

  1. 如果该成员(例如 $member_id =1)已将其帐户添加到该网络(例如 $network_id = 1),则,我们将使用成员(member)网络帐户(例如 $member_account = 1111111111)UPDATE members_social_accounts 表。因此,我为相同的 member_id 和相同的 network_id 添加新记录但帐户值(value)不同.

所以,数据库表将是这样的:

members_social_accounts after update

  • else 如果成员(例如 $member_id=1)正在向网络添加新帐户(例如 $member_account = 2222222222) (例如 $network_id = 3),然后我想将其作为新记录INSERTmembers_social_accounts 表中,该表将用于示例如下:
  • members_social_accounts after insert

    到目前为止我已经尝试过以下内容:

    <?php
    if(isset($_POST))
    {
    foreach($_POST['ids'] AS $ids)
    {
    $s = mysqli_query($link, "SELECT * FROM members_social_accounts WHERE network_id = '{$ids}' AND member_id = '$member_id'");
    echo $n = mysqli_num_rows($s);
    if($n == 1)
    {
    // UPDATE the members_social_accounts table
    }
    else
    {
    // INSERT a new record in members_social_accounts table
    }
    }
    }
    ?>

    但我有一个问题,即 $_POST[ids] AS $ids 正在获取 member_account (例如 aaaaaaaaaabbbbbbbbbb)而不是获取netword_id(例如12)。因此,我无法在 members_social_accounts 表中更新插入

    感谢您帮助指出我的代码或逻辑的问题。

    提前致谢

    附注您可以从此链接下载文件和数据库的副本: sample files and db

    最佳答案

    这是因为您输入的实际值是 member_account 字段。

    <input type="text" name="ids[<?=$network_id;?>]" id="<?=$network_id;?>" value="<?=$member_account;?>" /> 

    查看已分配从 $member_account 变量返回的

    你可以这样做:

    <input type="hidden" name="nid" value="<?=$network_id;?>"/> 

    然后您可以执行$_POST['nid']来获取网络id的真实值。

    关于php - 无法使用 foreach() 和 $_POST[] 获取 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25825254/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com