2012-02-03 1 views
0

Je m'excuse si ma question n'a pas de sens. Comme vous pouvez le voir dans le code ci-dessous, il analyse les fichiers PHP, saisit le texte entre {()} et le stocke dans $match.L'utilisation de la variable comme nom de colonne ne fonctionne pas dans le script PHP MYSQL

Maintenant, ce que j'essaye de faire ici est de faire une requête sur une table qui recherche la colonne $match où le pageid est égal au pageid de l'URL et où le champ (s) ne sont pas vides. Jusqu'à présent, il ne renvoie que Array dans les zones de texte. Est-ce que je configure le code correctement ou est-ce que je manque quelque chose de simple? Je sais que la partie numérisation fonctionne parce que si j'appuie sur la correspondance je reçois le texte entre les zones {()}. Il ne fait tout simplement pas la bonne requête pour une raison quelconque. Ou comme je l'ai dit, il me manque quelque chose. Toute aide est la bienvenue. S'il vous plaît laissez-moi savoir si vous avez besoin de plus d'informations. (Je ne reçois aucune erreur MySQL).

$fn = "../templates/".$templateid.".php"; 

$file = file_get_contents($fn); 

preg_match_all("#\{\('(\w+)'\)}#", $file, $matches); 

foreach ($matches[1] as $match) 
    { 
    $result = mysql_query("SELECT * FROM pages WHERE $match IS NOT NULL AND linklabel = '$pageID'") or die("Err: ".mysql_error()); 

    $res = mysql_fetch_array($result); 
    $content = $res; 
    echo " <div id='tabs-".$match."'> 
      <textarea id='".$match."' name='content-".$match."' class='fieldsetstyle'>".$content."</textarea> 
        <script type='text/javascript'> 
        CKEDITOR.replace('".$match."'); 
        </script> 
      </div>"; 
    } 
+0

est la colonne 'LinkLabel' de type pageID? – djot

+0

Donc, vous n'obtenez aucun résultat? Si vous lancez la requête directement sur MySQL (via une ligne de commande ou phpMyAdmin ou autre) obtenez-vous des résultats? –

+1

Pouvez-vous montrer un exemple de ce qui est mis dans '$ match' - un exemple de ce qui est trouvé? –

Répondre

3

$ res est un tableau, alors essayez de sortie la bonne colonne, comme

echo $res['linklabel']; 

ou essayer var_dump()

var_dump($res); 


$content = $res; // Still, $content is an array, not text 
+0

Comment serais-je en mesure de tirer le contenu de la colonne qui est égal à $ match alors ..? –

+0

$ res [$ match] ou $ content [$ match] – djot

+0

Merci de l'avoir fait! Répondez simplement comme toujours. –

0

Essayez cette

$result = mysql_query("SELECT * FROM pages WHERE ".$match." IS NOT NULL AND linklabel = '".$pageID."'") or die("Err: ".mysql_error()); 

Essayez cette mise à jour

Remplacer cette

foreach ($matches[1] as $match) 

Avec cette

foreach ($matches[1][1] as $match) 
+0

J'ai essayé cela, en obtenant toujours Array dans les résultats. Aucune erreur MYSQL. –

+0

pouvez-vous faire écho à la requête et montrer cette requête, de sorte que je peux le revoir? –

+0

Si je mets un écho, puis quitte après la requête, je reçois le numéro 1 affiché ... –

Questions connexes