2012-04-02 3 views
0

Je suis essayer d'inclure this plugin sur mon site, ça fonctionne très bien, mais j'ai quelques problèmes avec PHP.jQuery tag suggestion

Quand j'écris PHP comme ceci:

$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; 
} 

il fonctionne très bien, mais lorsque je tente d'obtenir un résultat de la base de données que j'ai des problèmes.

J'ai essayé:

$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; 
} 

Et cette méthode ne fonctionne pas pour moi. En outre, here est une capture d'écran de mes balises de table de base de données. Quel est le problème avec le code ci-dessus?

Répondre

1

Votre problème est que vous continuez à remplacer $ default_tags variable encore et encore. À la fin de votre boucle while, tout ce que vous avez est votre dernière ligne avec une virgule à la fin.

Fondamentalement, vous ne stockez rien d'autre que la dernière rangée de cette variable.

Si vous le faites vous suivre l'auriez quelque chose de semblable ce que vous essayez de faire:

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

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

C'est le travail merci –

+0

Heureux que cela a fonctionné! – selo

0

Vous devez décrire exactement ce que le problème est. Avez-vous un message d'erreur?

Une chose que je vois cela semble tort de me le rapportez de la base de données:

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

Pour chaque ligne que vous surchargez $default_tags complètement. Je pense que vous vouliez peut-être dire:

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

pour concaténer les étiquettes.

En dehors de cela, je vais avoir du mal à comprendre le code:

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

Ici vous assignez la variable $existing_tags que vous n'utilisez pas plus tard dans le code. Voulez-vous l'utiliser dans la ligne suivante au lieu de $default_tags? Qu'est-ce que le code est censé faire exactement?