2010-01-17 4 views
0

Impossible de comprendre cela pour la vie de moi. Essayer de renvoyer les noms de colonnes à partir de la table des valeurs client, puis renvoyer le résultat sous la forme d'un tableau. Quelqu'un peut-il indiquer où je me trompe?Retour des noms de colonnes à partir d'une table mySQL en utilisant PHP

mysql_select_db("HandlerProject", $con);  //Selects database 
    $selectcols = "SELECT * FROM ".$clientname."securitiestable";  //selects all  columns from clients security table 
    $tempcols = mysql_query($selectcols) or die(mysql_error()); 
    $returnedcols = $mysql_fetch_array($tempcols); 
    $tempsymbol = mysql_query("SHOW COLUMNS FROM".$clientname."securitiestable"); 
    $symbol = $mysql_fetch_array($tempsymbol); 
+0

Les deux dernières lignes devraient fonctionner correctement. Quel est le problème? –

+0

Lance une "Erreur irrécupérable: le nom de la fonction doit être une chaîne" pour les lignes $ returncols et $ – JoeCortopassi

Répondre

5

Suggestions:

Vous avez $ signes préfixant le mysql_fetch_array() appelle donc vous auriez besoin d'avoir attribué à $mysql_fetch_array une valeur (nom de la fonction que vous souhaitez appeler) (ce qui est probablement la raison pour laquelle vous voyez l'erreur que vous mentionnez dans votre commentaire).

Aussi, vous avez un espace manquant après FROM dans la deuxième requête

//           v 
$tempsymbol = mysql_query("SHOW COLUMNS FROM ".$clientname."securitiestable"); 

de dernière chose à vérifier - est $clientname ensemble? Cela dit, prenez le conseil de Bill Karwin!

3

Je voudrais utiliser mysql_fetch_assoc() pour la requête SELECT, puis appelez array_keys() sur n'importe quelle ligne du résultat.

$selectcols = "SELECT * FROM ".$clientname."securitiestable"; 
$tempcols = mysql_query($selectcols) or die(mysql_error()); 
$returnedcols = mysql_fetch_assoc($tempcols); 
$colnames = array_keys($returnedcols); 

Votre erreur fatale est à cause d'une question distincte: vous avez un symbole $ au début de votre appel de fonction. Ceci est la syntaxe PHP juridique, parce que vous pouvez mettre le nom d'une fonction dans une variable et appeler indirectement:

function foo($arg) 
{ 
    echo $arg . "!\n"; 
} 

$bar = "foo"; 

$bar("hello world"); 

Mais dans votre cas, il est probablement pas ce que vous vouliez. Si vous voulez appeler une fonction par son nom littéral, ne mettez pas $ devant elle. Si vous avez une variable de chaîne qui contient le nom d'une fonction, vous pouvez utiliser la variable comme indiqué ci-dessus.

+0

Je sais que ce post est ancien, mais je suis juste curieux; Votre méthode ci-dessus - Est-ce que cela ne sélectionnera pas CHAQUE ligne dans la BD? Quand le 'SHOW COLUMNS FROM' se contenterait de récupérer les noms des colonnes? Excusez mon idiot. –

+0

Si vous utilisez 'mysql_unbuffered_query()' vous ne pouvez récupérer que la première ligne. –

Questions connexes