2012-04-02 11 views
0

Ich versuche, this Plugin auf meiner Website, es funktioniert gut, aber ich habe einige Probleme mit PHP.jQuery-Tag-Vorschlag

Wenn ich schreibe die PHP wie folgt aus:

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

     if ([email protected]$_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; 
} 

es funktioniert gut, aber wenn ich versuche, ein Ergebnis aus der Datenbank zu erhalten ich Probleme habe.

Ich habe versucht:

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

if ([email protected]$_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; 
} 

Und diese Methode funktioniert für mich nicht. Außerdem ist here ein Screenshot von meinen Datenbanktabellen-Tags. Was ist falsch an dem obigen Code?

Antwort

1

Ihr Problem ist, Sie überschreiben $ default_tags Variable immer und immer wieder. Am Ende Ihrer While-Schleife haben Sie nur die letzte Zeile mit einem Komma am Ende.

Grundsätzlich speichern Sie nur die letzte Zeile in dieser Variablen.

Wenn Sie folgendermaßen vorgehen Sie etwas ähnliches haben würde, was Sie zu tun versuchen:

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

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

Es ist Arbeit dank –

+0

Froh, es hat funktioniert! – selo

0

Sie sollten genau beschreiben, was das Problem ist. Erhalten Sie eine Fehlermeldung?

Eine Sache, ich sehe, dass ich falsch scheint, ist die aus der Datenbank holen:

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

Für jede Zeile, die Sie $default_tags vollständig überschrieben werden. Ich denke, vielleicht wollten Sie sagen:

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

, um die Tags zu verketten.

Abgesehen davon bin ich Probleme, den Code zu verstehen:

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

Hier können Sie zuweisen die Variable $existing_tags, die Sie nicht später im Code verwenden. Möchten Sie es in der nächsten Zeile anstelle von $default_tags verwenden? Was soll der Code genau machen?