2013-06-30 87 views
0

我有一个包含链接的数据库的数组,一些值是正常的“index.php”,但其他看起来像“browse.php | search.php | calendar.php | tags.php?tags_mode = profile | search .php?show = match“,但我只想使用第一个路径”browse.php“,并将所有从第一个”|“包容性..我该怎么做?PHP从MySQL查询中减去“|”字符

这是我的代码:

$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太新了.. 谢谢你的任何建议..

回答

2

如果你只需要第一个元素,你可以使用带有极限爆炸:

$link=explode("|",$rs['Link'], 1); 
echo $link [0]; 
1

$ link = explode(“|”,$ rs ['Link']);

$output .= "<li class='menu_top' id='".$rs['ID']."'><a href='".$link[0]."'>".$rs['Name']."</a></li>"; 

你走了。

0

你可以用纯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“;