Php - valeur dans un array recup d'une table

rduvrac -  
 rduvrac -
Bonjour

Je cherche à générer une liste pour l'insérer dans un tableau.
j'ai ce code :
$listegeneree = array (1, 2, 5, 6, 7);
$result = array_rand ($listegeneree, 1);

Ca, ça marche bien mais je rentre dans ce cas les valeur moi même dans le code.

J'aimerai rentrer les valeur de ma table.
j'ai ce code qui me génère 1, 2, 5, 6, 7,:
do {
$liste=$liste.$row_RSmatable['id'].', ';
} while ($row_RSmatable = mysql_fetch_assoc($RSmatable));
//a ce niveau echo $liste donne bien 1, 2, 5, 6 , 7,
//j'intègre donc $liste dans la suite
$listegeneree = array ($liste);
$result = array_rand ($listegeneree, 1);

et j'ai comme résultat :
1, 2, 5, 6 , 7,
c'est à dire qu'il interprete "1, 2, 5, 6 , 7," comme une seule entité semble t il...

Peux t on mettre une variable dans le array() en écrivant autrement :
$liste=$liste.$row_RSmatable['id'].', ';

Ou comment écrire les valeurs dans le array() directement, bref, faut il procéder autrement ?

toutes les idées sont les biens venues, car je sais plus quoi faire :-(
merci
A voir également:

4 réponses

Dr Zoidberg Messages postés 547 Statut Membre 100
 
Salut,
Le plus simple est surement de générer directement un tableau sans passer par une chaine.
Par exemple
Remplace
$liste=$liste.$row_RSmatable['id'].', ';

par
$listegeneree[]=(int)$row_RSmatable['id'];

et enlève
$listegeneree = array ($liste);
0
le père
 
Bonjour

Quand tu écris $listegeneree = array ($liste); c'est comme si tu avais fait $listegeneree = array ("1,2,5,6,7");
ce qui n'est pas du tout la même chose que $listegeneree = array (1,2,5,6,7);
0
alain42
 
Bonjour,

Et pourquoi pas tout simplement:

$listegeneree = array ();
} while ($row_RSmatable = mysql_fetch_assoc($RSmatable)){
	$listegeneree[]=$row_RSmatable['id']; // tu empile dans ton array les valeurs lues dans ta table
}

$result = array_rand ($listegeneree, 1); 



par comme dit le pere en php 1,2,5,7 ce n'est pas du tout pareil que "1","2","5","7"

@lain
0
rduvrac
 
En effet "le père", c'est bien comme ça que je le pensai, merci pour ta formulation qui est bien plus claire que mes bla-bla ;-)

j'ai lu que "1", "2", "5", "7", peux s'écrire 1, 2, 5, 7, (je suppose que c'est parce que ce sont des nombre...) et que la dernière virgule n'est pas utile mais est acceptée (ça m'arrange plutôt :-)

Dr Zoidberg et alain42, vos solutions fonctionnent toutes les 2

merci beaucoup :-D

(en espèrant que je n'ai pas un autre truc qui vienne perturber le bouzin ;-)
0