【问题标题】:PHP implode explode comma separated values for use in if else statementPHP implode 爆炸逗号分隔值用于 if else 语句
【发布时间】:2016-02-11 07:10:28
【问题描述】:

我正在做一个项目,我需要在数据库字段中输入逗号分隔值,然后提取数据以在 if 和 else 语句中使用。

例如:在数据库字段user_status 我有像admin,admin1,admin2,admin3........etc 这样的用户名。我想使用这些值,例如:

$user_status = $row['user_status']; // database values of all the usernames
$username    = $_SESSION['username']; // username of the logged in user eg. admin

if($user_status == $username) // if session username matches with a username in the database field
{
  statements;
}else{
  statements;
}

我想从数据库中提取逗号分隔的数据库值,如果登录用户的用户名与数据库中的多个用户名之一匹配,则进行匹配。但我不太确定如何做到这一点。请专家帮助我。

【问题讨论】:

  • 看看php函数explodein_array
  • 这个问题与您在stackoverflow.com/questions/33651972/… 的其他问题有显着不同吗?
  • 是的......它完全不同......它都包含关于内爆爆炸的问题,但查询完全不同......

标签: php html mysql database phpmyadmin


【解决方案1】:

使用explode 创建一个数组,并使用in_array 检查$username 是否存在于$user_status 数组中。

<?php
$username    = $_SESSION['username'];
$user_status = explode(',', $row['user_status']);

if (in_array($username, $user_status)) {
    //...
}

http://php.net/manual/en/function.explode.php

http://php.net/manual/en/function.in-array.php

【讨论】:

  • 当我回显 $user_status = explode(',', $uhs['pads_status']);它返回 Notice: Array to string conversion in C:\xampp\htdocs\sites\ptc\member_ads.php on line 87 Array
  • 不需要回显变量赋值,回显函数结果即可,使用echo explode.....
  • @LaptopMedico 为什么要回显$user_status?你想达到什么目标? $user_status 是一个数组,所以你必须使用print_rvar_dump 来调试。也许您应该更新您的问题或更好地创建一个新问题。
【解决方案2】:

作为替代解决方案,您可以搜索以逗号封装的字符串

if (strpos($user_status, ','.$username.',') !== false) 
   echo 'user found';
else 
    echo 'not found';

【讨论】:

    猜你喜欢
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 2020-02-21
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    相关资源
    最近更新 更多