如何对从返回的数组执行搜索并用 php 替换mysql_fetch_array()
?如果我使用preg_replace()
它将不会返回匹配项。有什么我想念的吗?这是我没有成功使用的东西,任何人都可以看看并告诉我我做错了什么,或者可能是实现这一目标的更好方法:
mysql_connect(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD)
or die("<p>Error connecting to database: " . mysql_error() . "</p>");
mysql_select_db(DATABASE_NAME)
or die("<p>Error selecting the database " . DATABASE_NAME . mysql_error() . "</p>");
$sql = "SELECT product_id,description FROM oc_product_description WHERE product_id >= 97 AND product_id <= 100";
$result = mysql_query($sql);
$pattern = '/^.*\b([0-9]{6}\s\D\d|[0-9]{6}\s\D[0-9]{2}|[0-9]{7}\s\D[0-9]{2})\b.*$/';
$replace = '$1';
while($row = mysql_fetch_assoc($result))
{
$item[] = $row['description'];
}
foreach($item as $items)
{
echo preg_replace($pattern, $replace, $items) . '<br>';
echo '<br>';
}
这将做的只是返回与没有preg_replace()
. 现在我知道代码有效,因为如果我输出 aprint_r($item)
并将结果复制到数组中,它就可以正常工作。我是在做错什么,还是对从orpreg_replace()
返回的数组不起作用?我可以将我的示例放在我将结果复制到数组中但不想浪费空间的地方。这是从数据库返回的项目和我试图与正则表达式匹配的字符串的示例。我需要删除所有内容,但比赛除外。mysql_fetch_assoc
mysql_fetch_array
从 $row['description'] 返回的一项:
1997 Suzuki VZ800 Marauder, Engine # 5506-111789, Kick stand and spring. Chrome on end is starting to chip. 0121103 S19 <img src = ">http://www.roofis27.com/motorcycle/13_01_21/103.JPG">
这是正则表达式返回的内容:0121103 S19
因此,因此我在数据库中有超过 20,000 个条目,其中包含类似这样的描述,并且需要从它们中删除上面示例中的这些代码,以便我可以将它们放入另一个与 descriptions 的关系INSERT
匹配的表列中。我不是最好的 SQL,但标签总是在代码之后,所以也许有一种方法可以用我不知道的 SQL 来做到这一点?在这一点上,我主要关心的是为什么不适用于从. 从数据库返回的值是否有阻止我执行此操作的内容?任何事情都将不胜感激,我真的坚持这一点!product_id
product_id
<img>
preg_replace()
mysql_fetch_array()