1

在 sql 查询和 php 方面需要您的帮助。

我必须在这里写一些代码:
1。

$sql = "SELECT SUBSTR(n.`title`, 1,1) FROM node n WHERE n.`type` = 'type1'";
$results = db_query($sql);
while ($fields = db_fetch_array($results)) {
  foreach($fields as $key => $value) {
    echo $value;
  }
}

上面的代码返回我的文章标题(表 - 节点,列 - 类型,标题)的第一个字母,如下所示 - NHDKFLF ...

2.

if (preg_match ('/A/i', $string)) {
  echo ('Contains letter A'); //
}
else {
  echo ('Nothing'); //
}    

第二部分检查字符串是否包含某些字母。

现在,问题是如何组合这两段代码?我的意思是如何从数据库中提取数据并检查它是否有某些字母。

提前致谢。

4

2 回答 2

1

我想到了两个选择:做你现在正在做的事情,或者重写 SQL 来同时做这两个。

选项1:

$sql = "SELECT SUBSTR(n.`title`, 1,1) FROM node n WHERE n.`type` = 'type1'";
$results = db_query($sql);
while ($fields = db_fetch_array($results)) {
  foreach($fields as $key => $value) {
    if (preg_match ('/A/i', $value)) {
       echo ('Contains letter A'); //
    } else {
       echo ('Nothing'); //
    }
  }
}

选项 2:

$sql = "SELECT SUBSTR(n.`title`, 1,1) FROM node n WHERE n.`type` = 'type1' AND SUBSTR(n.`title`, 1,1) = 'A' ";

根据您项目的其他细节,可能有更好的方法来处理这个问题。

于 2009-08-03T22:45:41.117 回答
0

你为什么不直接查询你想要的?

... where SUBSTR(n.`title`, 1,1) = 'A' ...

如果您必须在查询之外的代码中进行过滤,则:

foreach($fields as $key => $value) {
    if (preg_match ('/A/i', $value)) {
        ...
}
于 2009-08-03T22:45:33.350 回答