【发布时间】:2018-03-31 01:36:59
【问题描述】:
我试图在特定的用户名表中只放置一个用户名。
现在它正在将所有用户名放入表中。
代码:
$top_user_array = array('user1', 'user2', 'user3', 'user4');
$top_user_array = join("', '", $top_user_array);
$query = "SELECT * FROM users WHERE username IN ('{$top_user_array}')";
$send_query = mysqli_query($connection, $query);
while ($row = mysqli_fetch_assoc($send_query)) {
$author = $row['username'];
if(isset($_POST['create_sub'])) {
$username = $_SESSION['username'];
$query = "UPDATE users SET user_subs = CONCAT(IFNULL(user_subs,''), '{$username}' ',') WHERE username = '{$author}' ";
$create_user_sub = mysqli_query($connection, $query);
confirmQuery($create_user_sub);
$query = "UPDATE users SET user_subscriptions = CONCAT(IFNULL(user_subscriptions,''), '{$author}' ',') WHERE username = '{$username}' ";
$create_user_subscription = mysqli_query($connection, $query);
confirmQuery($create_user_subscription);
echo "Subscribed";
}
echo '<form action="" method="post" enctype="multipart/form-data">
<div class="form-group">
<button type="submit" name="create_sub" class="btn btn-primary">Subscribe To '. $author; echo ' <i class="fa fa-users" aria-hidden="true"></i></button>
</div>
</form>';
}
基本示例:
如果“主用户”订阅了 user1,它会将所有用户放在“主用户”user_subscriptions 行中,而不是仅将特定用户名放在那里。
主用户订阅 user1 后数据库的外观
与@Kodoyosa合作后
这是得到我想要的结果的代码:
$top_user_array = array('user1', 'user2', 'user3', 'user4');
$top_user_array = join("', '", $top_user_array);
$query = "SELECT * FROM users WHERE username IN ('{$top_user_array}')";
$send_query = mysqli_query($connection, $query);
while ($row = mysqli_fetch_assoc($send_query)) {
$author = $row['username'];
$author_u = str_replace(' ', '_', $author);
if(isset($_POST["create_sub_{$author_u}"])) {
$username = $_SESSION['username'];
$query = "UPDATE users SET user_subs = CONCAT(IFNULL(user_subs,''), '{$username}' ',') WHERE username = '{$author}' ";
$create_user_sub = mysqli_query($connection, $query);
confirmQuery($create_user_sub);
$query = "UPDATE users SET user_subscriptions = CONCAT(IFNULL(user_subscriptions,''), '{$author}' ',') WHERE username = '{$username}' ";
$create_user_subscription = mysqli_query($connection, $query);
confirmQuery($create_user_subscription);
echo "Subscribed";
}
echo '<form action="" method="post" enctype="multipart/form-data">
<div class="form-group">
<button type="submit" name="create_sub_'.$author.'" class="btn btn-primary">Subscribe To '. $author; echo ' <i class="fa fa-users" aria-hidden="true"></i></button>
</div>
</form>';
}
【问题讨论】:
-
如果您将订阅标准化到自己的表中,这会容易得多。
标签: php mysql sql arrays mysqli