DufferMedlem sedan mars 2003429 inlägg Just nu känner jag mig så dum, jag kan inte äns komma på hur jag stoppar in ett mysql resultat i en vanlig array.
Fungerar mysql_fetch_array() som om det vore en vanlig array()?
har denna koden men får den inte att fungera :(
<?php
include("data.php");
/// Connect
mysql_connect($host,$id,$kod);
mysql_select_db($databas);
$rand_values = mysql_query("SELECT idbilder FROM bildarkiv") or exit(mysql_error());
srand((float) microtime() * 10000000);
$input = mysql_fetch_array($rand_values);
$rand_keys = array_rand($input, 3); /// Line 11
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
echo $input[$rand_keys[2]] . "\n";
?>
Får detta felmeddelande:
Warning: Second argument to array_rand() has to be between 1 and the number of elements in the array in /test26.php on line 11
Känns lite som jag är helt ute och cyklar nu :r
(Har jag gjort något rätt? är det så här man ska göra ifall man vill plocka ut en random värde ur en array som har generats från en mysql databas? Andra förslag på hur jag kan göra?)
DufferMedlem sedan mars 2003429 inlägg Testade lite mer, om jag tog SELECT * istället för SELECT idbilder försvan felmeddelandet och den visade 3st (random) värden från samma rad.
MatteMedlem sedan aug. 20002 975 inlägg Testa det här:
$rand_values = mysql_query("SELECT idbilder FROM bildarkiv") or exit(mysql_error());
// Initiera tom array
$input = array();
// Loopa resultatet i SQL-körningen, och lägg i array
while ($row = mysql_fetch_assoc($rand_values)) {
$input[] = $row['idbilder'];
}
// Kolla att ditt slumpade antal inte är större än arrayens storlek
$rand_count = 3;
$rand_count = $rand_count > count($input) ? count($input) : $rand_count;
// Slumpa
srand((float) microtime() * 10000000);
$rand_keys = array_rand($input, $rand_count);
// Loopa resultatet
foreach ($rand_keys as $index) {
echo $input[$index] . "\n";
}
Det kan eventuellt bli konstigheter om arrayen du slumpar från endast innehåller ett eller noll element.
DufferMedlem sedan mars 2003429 inlägg Tro mig, funktion är vackert =D
Ett stort tack!