Generare array da ciclo while e prendere valori casuali

Veronica Auretta

Nuovo Utente
21 Apr 2015
25
0
0
Salve, sto provando ad estrarre dei dati da un db per inserirli in un Array e poi prenderne uno a caso con la funzione array_rand(), passarlo ad uno switch e stampare il case. Il problema è che non riesco a farlo funzionare in nessun modo XD

In questo modo funziona... il problema è che non riesco a generare l'array con un ciclo while che prende i dati dal db. Mi potete mostrare come fare? .-.

PHP:
$array_materiali = array(56,57,0);
$array = $array_materiali;
$n = array_rand($array);

$materiale = $array[$n];
switch ($materiale){
	case 0: $raccolta = "niente"; break;
	case 56: $raccolta = "fiori"; break;
	case 57: $raccolta = "legna"; break;}
	
echo $raccolta;
 
Ultima modifica di un moderatore:
ciao
prova così
PHP:
<?php
$array_materiali = array();
//dati di connessione e query
while($riga = mysqli_fetch_array($result, MYSQLI_ASSOC)){
	$array_materiali[]=$riga['materiale'];//crei l'array con i dati del db (p.s. non so come hai chiamato il campo)
}
$n = array_rand($array_materiali);//estrai una chiave a caso
switch ($array_materiali[$n]){
	//e qui non so come possano essere i case
	case 0: $raccolta = "niente"; break;
	case 56: $raccolta = "fiori"; break;
	case 57: $raccolta = "legna"; break;
}
//....
?>
 
ciao
prova così
PHP:
<?php
$array_materiali = array();
//dati di connessione e query
while($riga = mysqli_fetch_array($result, MYSQLI_ASSOC)){
	$array_materiali[]=$riga['materiale'];//crei l'array con i dati del db (p.s. non so come hai chiamato il campo)
}
$n = array_rand($array_materiali);//estrai una chiave a caso
switch ($array_materiali[$n]){
	//e qui non so come possano essere i case
	case 0: $raccolta = "niente"; break;
	case 56: $raccolta = "fiori"; break;
	case 57: $raccolta = "legna"; break;
}
//....
?>

Grazie infinite... immaginavo che fosse qualcosa di molto semplice X°D ma proprio non riuscivo a farlo!
provavo così....

Codice:
$array_materiale.= $riga['materiale'];

e ovviamente sbagliavo >.<


Ah... un'ultima cosa mi servirebbe >.< se io volessi aggiungere, dopo il ciclo while, un valore, ad esempio 0...
come dovrei fare? se faccio così

Codice:

$array_materiali[]=0

poi l'array viene così...

Array ( [0] => 56 [1] => 57 [2] => 0 )
 
Ultima modifica:
ciao
se non ho capito male
PHP:
<?php
$array_materiali = array();
//dati di connessione e query
while($riga = mysqli_fetch_array($result, MYSQLI_ASSOC)){
    $array_materiali[]=$riga['materiale'];//crei l'array con i dati del db (p.s. non so come hai chiamato il campo)
}
$array_materiali[]=0;
$array_materiali[]=1;
/*ci pensa php a incrementare la chiave numerica di uno*/
//....
?>
esempio se nel ciclo while si è creato l'array
$array_materiali[0] => legno
$array_materiali[1] => plastica
$array_materiali[2] => ferro
con le due istruzioni che ho scritto alla fine troverai l'array sopra e
$array_materiali[3] => 0
$array_materiali[4] => 1
 
ciao
se non ho capito male
PHP:
<?php
$array_materiali = array();
//dati di connessione e query
while($riga = mysqli_fetch_array($result, MYSQLI_ASSOC)){
    $array_materiali[]=$riga['materiale'];//crei l'array con i dati del db (p.s. non so come hai chiamato il campo)
}
$array_materiali[]=0;
$array_materiali[]=1;
/*ci pensa php a incrementare la chiave numerica di uno*/
//....
?>
esempio se nel ciclo while si è creato l'array
$array_materiali[0] => legno
$array_materiali[1] => plastica
$array_materiali[2] => ferro
con le due istruzioni che ho scritto alla fine troverai l'array sopra e
$array_materiali[3] => 0
$array_materiali[4] => 1

ah ok, mi ha mandato in confusione che con print_r mi venisse questo
Array ( [0] => 56 [1] => 57 [2] => 0 )
ma a quanto pare funziona benissimo così! grazie di tutto :D
 
Ultima modifica:

Discussioni simili