Php 从数据库中查找字符串中的某个字符返回

Php 从数据库中查找字符串中的某个字符返回,php,Php,我有以下课程。它返回某些字段。我对参考书感兴趣。我希望它分割数据,以便在返回查询后,引用包含“A”,然后返回该值,如果包含B,则返回该值。分开,所以我可以把它放在表中,显示a的返回量,b的返回量等。数据是按房间列出的 <?php class CHWIPProgress { var $conn; // Constructor, connect to the database public function __construct() { req

我有以下课程。它返回某些字段。我对参考书感兴趣。我希望它分割数据,以便在返回查询后,引用包含“A”,然后返回该值,如果包含B,则返回该值。分开,所以我可以把它放在表中,显示a的返回量,b的返回量等。数据是按房间列出的

<?php


class CHWIPProgress {

    var $conn;

    // Constructor, connect to the database
    public function __construct() {
        require_once "/var/www/reporting/settings.php";
        define("DAY", 86400);
        if(!$this->conn = mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD)) die(mysql_error());
        if(!mysql_select_db(DB_DATABASE_NAME, $this->conn)) die(mysql_error());
    }

    public function ListWIPOnLocation($location) {
    $sql = "SELECT DISTINCT
            `ProgressPoint`.`PPDescription` AS Description ,`Bundle`.`WorksOrder` AS WorksOrder, `Bundle`.`BundleNumber` AS Reference,`TWOrder`.`DueDate` AS DueDate , `Stock`.`Description` as Stock , `Stock`.`ProductGroup` as Group 
        FROM TWOrder,Bundle,ProgressPoint, Stock
                    WHERE `Bundle`.`CurrentProgressPoint`=`ProgressPoint`.`PPNumber`
        AND `TWOrder`.`Colour`=`Bundle`.`Colour`
        AND `TWOrder`.`Size`=`Bundle`.`Size`
                    AND `TWOrder`.`WorksOrderNumber`=`Bundle`.`WorksOrder`
                    AND `TWOrder`.`Product`=`Stock`.`ProductCode`
                    AND `ProgressPoint`.`PPDescription` = '" . $location . "'
        ORDER BY `TWOrder`.`DueDate` ASC";
        mysql_select_db(DB_DATABASE_NAME, $this->conn);
        $result = mysql_query($sql, $this->conn);
                    $num_rows = mysql_num_rows($result);
                    echo "Number of rows : $num_rows"; 
        while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            $return[] = $row;
        }       

        return $return;

    }


}
?>

函数将返回一个数组,其中每个项对应于查询中的一行。您可以迭代此数组并使用隔离项,或者将它们添加到其他数组中。排列数据的方法不止一种,下面是一个示例:

$returned = array();
$returned["A"] = array();
$returned["B"] = array();
foreach($return as $row) {
    if (strpos($row["Reference"], "A") !== FALSE) { // note the !== operator
        $returned["A"][] = $row;
    }
    if (strpos($row["Reference"], "B") !== FALSE) { // note the !== operator
        $returned["B"][] = $row;
    }
}
var_dump($returned);
或者,您可以在
WHERE
子句中使用MySQL
LIKE
操作符来检索引用列包含特定字符的行:

WHERE ... AND Reference = LIKE '%A%'

很难确定你在寻求什么帮助。如果详细一点,更多的人会愿意帮助。使用数组不会得到任何值。不幸的是,由于参考编号最多包含26个字母,因此查询效率不高。
$row[“Reference”]
包含哪些可能的值?我已将其修复。我好像错过了一个引号。非常感谢你的帮助