Php - valeur dans un array recup d'une table

Fermé
rduvrac - 4 janv. 2008 à 12:53
 rduvrac - 4 janv. 2008 à 14:51
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

4 réponses

Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
4 janv. 2008 à 13:02
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
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
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
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