我有一个来自数据库的数组,其中包含链接,一些值正常为"index.php",但其他值看起来像"browse.php | search.php | calendar.php | tags.php?tags_mode=profile|search.php?show=match",但我只想使用第一个路径"browsephp",并包含从第一个"|"开始的所有内容。。我该怎么做?
这是我的代码:
$sql = "SELECT * FROM $tablename WHERE `Parent` = '0' AND Type LIKE 'top' ORDER BY `Order` ASC";
$result = mysql_query($sql) or die ("Error: Query Failed! " .mysql_error());
$output = "<ul>";
while ($rs = mysql_fetch_array($result)) {
$output .= "<li class='menu_top' id='".$rs['ID']."'><a href='".$rs['Link']."'>".$rs['Name']."</a></li>";
$sql2 = "SELECT * FROM $tablename WHERE `Parent` = '".$rs['ID']."' ORDER BY `Order` ASC";
$result2 = mysql_query($sql2) or die ("Error: Query Failed! " .mysql_error());
if (mysql_num_rows($result2) != 0) {
$output .= "<ul class='menu_sub' id='".$rs['ID']."'>";
while ($rs2 = mysql_fetch_array($result2)){
$output .= "<li><a href='".$rs2['Link']."'>".$rs2['Name']."</a></li>";
}
$output .= "</ul>";
}
}
$output .="</ul>";
echo $output;
$rs['Link']
就是我想要的那个。。
我试着做减法,但我真的不能说我能做,因为我对php太陌生了。。谢谢你的建议。。
如果您只需要第一个元素,您可以使用极限爆炸:
$link=explode("|",$rs['Link'], 1);
echo $link [0];
$link=爆炸("|",$rs['link']);
$output .= "<li class='menu_top' id='".$rs['ID']."'><a href='".$link[0]."'>".$rs['Name']."</a></li>";
给你。
您可以使用纯sql:
$sql="SELECT*,IF(INSTR(Link
,'|')>0,LEFT(Link
,INSTR(Link
,'|`)-1),Link
)AS FormattedLink
FROM$tablename WHERE Parent
='0'AND Type LIKE'top'ORDER BY Order
ASC";