Php 从数据库中查找字符串中的某个字符返回
我有以下课程。它返回某些字段。我对参考书感兴趣。我希望它分割数据,以便在返回查询后,引用包含“A”,然后返回该值,如果包含B,则返回该值。分开,所以我可以把它放在表中,显示a的返回量,b的返回量等。数据是按房间列出的Php 从数据库中查找字符串中的某个字符返回,php,Php,我有以下课程。它返回某些字段。我对参考书感兴趣。我希望它分割数据,以便在返回查询后,引用包含“A”,然后返回该值,如果包含B,则返回该值。分开,所以我可以把它放在表中,显示a的返回量,b的返回量等。数据是按房间列出的 <?php class CHWIPProgress { var $conn; // Constructor, connect to the database public function __construct() { req
<?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
子句中使用MySQLLIKE
操作符来检索引用列包含特定字符的行:
WHERE ... AND Reference = LIKE '%A%'
很难确定你在寻求什么帮助。如果详细一点,更多的人会愿意帮助。使用数组不会得到任何值。不幸的是,由于参考编号最多包含26个字母,因此查询效率不高。$row[“Reference”]
包含哪些可能的值?我已将其修复。我好像错过了一个引号。非常感谢你的帮助