function dans une query

black123
Invité n'ayant pas de compte PHPfrance

11 juil. 2006, 23:34

Allo! Je fait :

$sql = mysql_query("SELECT * FROM players ORDER by ov(id)") or die(mysql_error());

où ov() est une fonction fabriquée par moi.

Pour cela me donne-t-il un erreur :

Erreur de syntaxe près de '(id)' à la ligne 1

Et comment fais-je pour pouvoir arrivé à ce résultat?

Merci!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 juil. 2006, 23:55

à l'huile :langue: ............... :oops:

c'est du PHP cette fonction ?
Dans ce cas ce n'est pas possible d'utiliser une fonction PHP dans une requête avec en paramètre un champ de table.

que fait-elle ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

12 juil. 2006, 07:42

Techniquement, ce serait possible à deux conditions :
-1- on fait une concaténation propre;
-2- la fonction retourne le nom d'une des colonnes et rien d'autre;
<?php
//...
$sql = mysql_query("SELECT * FROM players ORDER by ". ov(id) .";") or die(mysql_error());
//...
?>
La clause ORDER BY doit être suivie exclusivement du nom d'une des colonnes de la (ou des) table(s) de la clause FROM.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

12 juil. 2006, 09:32

Toutafé encore faut-il que le paramètre (ici id) soit une variable ($id) ou une constante en aucun cas un champ de la table c'est surtout ce que j'ai voulu faire remarquer.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute