Votre question

Fonctionnement d'un rand

Tags :
  • Programmation
Dernière réponse : dans Programmation
26 Décembre 2007 20:01:22

Bonjour à tous et à toutes,

je suis actuellement entrain de coder un MMORPG jouable sur site web.
Premier petit problème sur ... l'inscription...

J'explique le problème.
Lors de l'inscription, le membre se voit automatiquement être réparti dans une maison, au hasard.
Les 4 maisons sont situés dans la base de données, ayant un champs chacuns.

C'est à dire qu'en quelques sortes la table hp_maisons à ce schéma :

--> hp_maison (titre)
-----> id
-----> nom

On a donc 4 maisons.
Pour que le membre se voit attribué automatiquement une des 4 maisons sans rien demander, voici le code que j'ai mis :

  1. $requeterand = mysql_query("SELECT * FROM hp_maisons");
  2. $arrayrand = mysql_fetch_array($requeterand);
  3. $maison_hp = $arrayrand[rand];


Et dans la requête, je rajoute un '$maison_hp', mais cela ne marche pas, mon rand est donc incorrect, avez vous une idée pour faire en sorte que cela fonctionne ?

Merci !

Autres pages sur : fonctionnement rand

a b L Programmation
27 Décembre 2007 10:36:29

  1. $indexrand = rand(1, count($arrayrand));
  2. $maison_hp = $arrayrand[$indexrand];

J'imagine un truc de ce genre ?
27 Décembre 2007 15:08:05

Salut, et merci d'avoir proposé quelque chose :) 

Je viens d'essayer ta solution, ce qui donne :

  1. $requeterand = mysql_query("SELECT * FROM hp_maisons");
  2. $arrayrand = mysql_fetch_array($requeterand);
  3. $indexrand = rand(1, count($arrayrand));
  4. $maison_hp = $arrayrand[$indexrand];


Et cela ne fonctionne toujours pas, je n'ai vraiment pas d'idées pour faire en sorte que cela marche :/ 
Contenus similaires
28 Décembre 2007 19:19:46

Essaye ceci
SELECT * FROM hp_maisons ORDER BY RAND() LIMIT 0,1
28 Décembre 2007 20:17:58

$arrayrand te retourne qu'un enregistrement et donc qu'une maison et non la totalité.
[rand(inf,sup)] te donnera l'accès à une colonne de l'enregistrement
si tu veux le faire coté mysql, cf rep. de Studientinu
coté php, il faut séléctionner une ligne puis récupérer la ligne:
  1. mysql_data_seek ($requeterand , rand (0, mysql_num_rows ($requeterand) -1));
  2. $arrayrand = mysql_fetch_array($requeterand);
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS