我知道我对此非常了解,因为我早些时候已经获得了有关此主题的帮助,但是当它使相同的代码在网站的另一部分起作用时,看来我无法使其再次起作用。
我正在做的是尝试获取字符串的第一部分(在数据库中被-
分隔符破坏了),因此数据库条目slug
为foo-bar-rules
,我需要从中获取foo
字符串,其中slug
不等于foo-bar-rules
但等于phoo-bar-rules
或feuw-bar-rules
。很抱歉,如果我的解释不是很有帮助,我很难将其解释给我自己:D。
预先感谢任何可以在这里帮助我的人..
<?php define ('PAGEPARENT', 'foo');
define ('PAGECHILD', 'bar');
define ('PAGEGRANDCHILD', 'rules');
switch (PAGEGRANDCHILD) {
case PAGEGRANDCHILD:
$pageGrandChild = PAGEGRANDCHILD;
$rangeRelationResult = mysql_query("SELECT DISTINCT SUBSTRING(slug, 1, INSTR(slug, '-') - 1) result
FROM web_navbar_links
WHERE SUBSTRING(slug FROM INSTR(slug, '-".PAGECHILD."-') + 1) = '$pageGrandChild'
AND grandchild = 1
AND slug != '".PAGEPARENT."-".PAGECHILD."-".PAGEGRANDCHILD."';
");
while ($rangeRelationRow = mysql_fetch_object($rangeRelationResult)) { ?>
<a href="?page=<?php echo $rangeRelationRow->result."-".PAGECHILD."-".PAGEGRANDCHILD; ?>&pageLevel=<?php echo $_GET['pageLevel']; ?>" title="<?php echo PAGEGRANDCHILD." for ".$rangeRelationRow->result; ?>"><div id="<?php echo $rangeRelationRow->result; ?>Channel"><?php echo "» ".ucwords(PAGECHILD)." for ".$rangeRelationRow->result; ?></div></a> <?php
}
break;
} ?>
最佳答案
我不确定是否能正确回答您的问题,但是LIKE
是否可以选择?
SELECT .... WHERE slug LIKE "%-rules" AND slug != "foo-bar-rules"
将选择所有以
-rules
结尾的记录。关于php - 使MySQL SUBSTRING正常工作的轻微问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3987636/