在地址栏中显示单词

时间:2011-08-16 12:04:47

标签: php mysql

我需要一些有才华的朋友的帮助。 实际上我是开发新手,所以我不知道如何在www.testsite.com/index.php?pname=**Home**之类的单词中显示我的页面,除了www.testsite.com/index.php?pid=**1** 我有以下代码用于显示页码

if (!$_GET['pid']) {
    $pid = '1';
} else {
    $pid = ereg_replace("[^0-9]", "", $_GET['pid']); }

和sql代码

$sqlCommand = "SELECT id, link FROM main_page WHERE showing='1' ORDER BY id ASC";
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error()); 
$menu='';
while ($row = mysqli_fetch_array($query)) { 
    $pid = $row["id"];
    $link = $row["link"];
    if ($linklabel){
    $menu .='<a href="index.php?pid='.$pid.'">'. $link .'</a>';
     }}

我想显示和href页面的名称而不是id我该怎么做。 帮助PLZ

3 个答案:

答案 0 :(得分:1)

如果我输入* 1 * 2 * 3 *

,您的示例将失败

你应该搜索

的内容
  

**(内容)**

,没有别的。 那会得到你的名字和号码。

这是我的例子

$string = "**123naasdme456**";
preg_match("/[^\*+](?P<val>\w+)[^\*+]/",$string,$matches);
echo $matches[0];

将回复123naasdme456

并在此处将其实施到您的代码中

function getReal($urlVar)
{
  if(preg_match("/[^\*+](?P<val>\w+)[^\*+]/",$urlVar,$matches))
  {
    return $matches[0];
  }
  return false; // or default value
}
$pid = getReal($_GET['pid']);
$name = getReal($_GET['pname']);

答案 1 :(得分:0)

您应该在数据库(表main_page)中添加名称为name或类似名称的额外字段。然后你可以:

if (!$_GET['pname']) {
  $pid = 'home';
} else {
  $pid = mysql_real_escape_string($pid);
  $sql = mysql_query("SELECT name FROM main_page WHERE name = '$pid'");

  if (mysql_num_rows($sql) == 1))
  {
     echo "Content";
  } else {
     echo "404 error. Couldn't find the page you were looking for.";
  }
}

答案 2 :(得分:0)