jQuery标签建议

时间:2012-04-02 00:19:08

标签: php jquery

我在我的网站上尝试包含this插件,它运行正常,但我遇到了一些PHP问题。

当我像这样编写PHP时:

$default_tags = 'Avanture, Giorgio, Armani, Depeche, Mode, Pevanje, Francuska, usluživanje, Pravo, Menadžer, prodaje, Advokat'; 

        if (!@$_SESSION['existing_tags']) {
            $_SESSION['existing_tags'] = $default_tags;
        }

        $existing_tags = $_SESSION['existing_tags'];
        $tags = split(' ', $default_tags);

         if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && @$_GET['tag']) {
            $match = array();
            foreach ($tags as $tag) {
                if (stripos($tag, $_GET['tag']) === 0) {
                    $match[] = $tag;
                }
           }
        echo json_encode($match);

            }
        exit;
} 

它运行正常,但是当我尝试从数据库中获取结果时,我遇到了问题。

我试过了:

$query = mysql_query("SELECT * FROM  tags");
while($row = mysql_fetch_array($query)) {
$default_tags = ''.$row['keyz'].', '; 

if (!@$_SESSION['existing_tags']) {
        $_SESSION['existing_tags'] = $default_tags;
    }

    $existing_tags = $_SESSION['existing_tags'];
    $tags = split(' ', $default_tags);

     if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && @$_GET['tag']) {
        $match = array();
        foreach ($tags as $tag) {
            if (stripos($tag, $_GET['tag']) === 0) {
                $match[] = $tag;
            }
       }
    echo json_encode($match);

        }
    exit;
} 

这种方法对我不起作用。此外,here是我的数据库表标签的屏幕截图。上面的代码出了什么问题?

2 个答案:

答案 0 :(得分:1)

你的问题是你一遍又一遍地重写$ default_tags变量。 在你的while循环结束时,你所拥有的就是你最后一行用逗号结尾。

基本上你不会存储除变量中最后一行以外的任何内容。

如果您执行以下操作,您将获得类似于您尝试执行的操作:

$default_tags_arr = array();
while($row = mysql_fetch_array($query)) {
    array_push($default_tags_arr, $row["keyz"]);
}

$default_tags = join(", ",$default_tags_arr);

答案 1 :(得分:0)

您应该准确描述问题所在。你收到错误信息吗?

我看到的一件事似乎是错误的是从数据库中取出:

while($row = mysql_fetch_array($query)) { 
$default_tags = ''.$row['keyz'].', ';  

对于您完全覆盖$default_tags的每一行。我想也许你想说:

while($row = mysql_fetch_array($query)) //where does the curly brace closes in the original code?
    $default_tags .= ''.$row['keyz'].', ';  //notice the . before =

连接标签。

除此之外,我无法理解代码:

$existing_tags = $_SESSION['existing_tags'];           
$tags = split(' ', $default_tags);    

在这里,您要分配稍后在代码中不使用的变量$existing_tags。您想在下一行而不是$default_tags中使用它吗?应该做的代码是什么?