Je pense que c'est juste quelque chose que je n'ai pas rencontré auparavant!Erreur fatale, pas très bien pourquoi?
$r = $database->currentChallengers($f, $g);
while($row=mysql_fetch_assoc($r))
{
$u[]=$row['username'];
$i[]=$row['userid'];
$s[]=$row['streak'];
}
for ($i = 0; $i < count($u); $i++)
{
foreach ($u as $user)
{
echo "Challenger: $u[$i]";
}
}
que PHP est pour la requête de base de données suivante:
function currentChallengers($f, $g)
{
$q = "SELECT k.userid, k.streak, u.username
FROM ".TBL_KOTH." k
INNER JOIN ".TBL_USERS." u
ON k.userid = u.id
WHERE k.format = '$f' && k.game = '$g' && k.king = '0' && k.done = '0'
ORDER BY k.userid";
return mysql_query($q, $this->connection);
}
Je reçois l'erreur
Fatal error: [] operator not supported for strings
Sur la ligne
$u[]=$row['username'];
Quelqu'un pourrait me dire pourquoi cela arrive? En outre, le code que j'ai écrit doit-il indiquer chaque nom d'utilisateur de la requête? Merci
Non, je viens de tester. Si $ u n'était pas initialisé, PHP le traiterait comme un tableau et lancerait un avis mais pas une erreur fatale. Cela signifie que '$ u' est utilisé ailleurs dans le code, et ne devrait pas être réinitialisé sans d'abord vérifier soigneusement. Ou le PO devrait utiliser des noms de variables significatifs en premier lieu pour éviter de telles confusions. –
@Pekka intéressant, je suis corrigé. Je vais augmenter votre réponse, j'espère que Luc va changer la réponse acceptée. –