J'ai de la misère avec un query.

Dexon95
Invité n'ayant pas de compte PHPfrance

09 janv. 2012, 14:52

Bonjours, je fais un petit code... dans un template mybb et j'ai bocoup de misère avec un query. avant il y avait une fatalerror, que j'ai réglé , plusieur syntax error, que j'ai réglé aussi... mais là...

Une que je n'avance plus.

:syntax error, unexpected '{', expecting ')'

Voicie le code :
<?php

$db = mysql_connect('localhost','root','') or die("Database error"); 
mysql_select_db('forum', $db);


$fid4 = mysql_real_escape_string({$mybb->user['fid4']});
$result = $db->query("SELECT `balance` FROM iconomy WHERE `username` = '{$fid4}'");
$balance = $db->fetch_array($result);

?>
...
<?php echo $balance ?>

Eléphant du PHP | 267 Messages

09 janv. 2012, 15:08

salut,

l'erreur se situe sur la ligne :
$fid4 = mysql_real_escape_string({$mybb->user['fid4']});

soit tu enlèves les accolades, ce qui donne :
$fid4 = mysql_real_escape_string($mybb->user['fid4']);

soit tu mets des guillemets pour que les caractères { et } soient interprétés comme des caractères spéciaux, ce qui donne :
$fid4 = mysql_real_escape_string("{$mybb->user['fid4']}");

@+
dix2

Dexon95
Invité n'ayant pas de compte PHPfrance

09 janv. 2012, 15:19

Salut, Merci de ta réponse rapide :)

J'ai essayé tes deux solutions, l'un ou l'autre me donne cette fatal erreur : Fatal error: Call to a member function query() on a non-object

Eléphant du PHP | 267 Messages

09 janv. 2012, 15:37

$db n'est pas un objet, c'est une ressource, en l'occurence une connexion vers une base de données

donc, au lieu de :
$result = $db->query("SELECT `balance` FROM iconomy WHERE `username` = '{$fid4}'");
$balance = $db->fetch_array($result);

il faut mettre :
$result = mysql_query("SELECT balance FROM iconomy WHERE username = '".$fid4."'", $db);
$row1 = mysql_fetch_array($result);
$balance = $row1['balance'];

@+
dix2

dexon95
Invité n'ayant pas de compte PHPfrance

09 janv. 2012, 16:13

Salut, j'ai testé mais j'ai toujours un autre fatal erreur :/
: Fatal error: Call to a member function simple_select() on a non-object

Mon code là :
$db = mysql_connect('localhost','root','') or die("Database error"); 
mysql_select_db('forum', $db);


$fid4 = mysql_real_escape_string("{$mybb->user['fid4']}");
$result = mysql_query("SELECT balance FROM iconomy WHERE username = '".$fid4."'", $db);
$row1 = mysql_fetch_array($result);
$balance = $row1['balance'];
J'ai essayé sans les ' "{ ' ' }" '
Mais même résulta. :(
Je continu de tester des choses malgré tout..
Sinon peut-être c'est le code comment il n'est pas formulé correctement ?

Eléphant du PHP | 267 Messages

09 janv. 2012, 16:36

pour la ligne :
$fid4 = mysql_real_escape_string({$mybb->user['fid4']});

le plus simple est de ne rien mettre :
$fid4 = mysql_real_escape_string($mybb->user['fid4']);

si tu mets des guillemets, il faut obligatoirement mettre des accolades car sinon PHP va interpréter $mybb->user comme étant un Array et le reste ['fid4'] comme une chaine de caractères
donc un echo("$mybb->user['fid4']"); affichera :
Array['fid4']

A priori, l'erreur concerne $mybb->user['fid4']
je ne connais pas le template mybb
vérifie que $mybb est bien un objet qui possède un attribut user qui est un tableau associatif dont une des clefs est 'fid4'
éventuellement, fais un var_dump($mybb) pour voir ce que ça donne

@+
dix2

dexon95
Invité n'ayant pas de compte PHPfrance

09 janv. 2012, 16:48

Et bien, {$mybb->user['username']} par exemple, affichera l'username de la personne qui est connecté.

sa fait un genre de SELECT username FROM users WHERE *je connais pas la variable qui prend l'utilisateur connecté* = username

Je pense que sa fait se genre de code et nous permet d'aficher plus simplement dans un text sur le template Ex.: Salut, <b>{$mybb->user['username']}</b>!<br />
Affichera : Salut Dexon!

Quand j'écris {$mybb->user['fid4']} seule, sa m'affiche bien le texte du fid4 de l'utilisateur connecté... Mais je trouve pas vraiment comment incorporer ce texte détecté automatiquement par mybb dans un query :(

dexon95
Invité n'ayant pas de compte PHPfrance

10 janv. 2012, 23:56

Salut, sinon personne aurait une vague idée comment fixer ? :/

C'est pour un site de serveur et j'ai poster ce problème sur plusieurs forum déjà et personne ne ma répondu encore... bah , répondu oui mais personne est arrivé à réglé le problème.

J'ai même été à contacter un développeur du mybb directement.

Need help ! :priere: