Shu!
I am currently working on a site where I want to randomly show pictures. I am using
sessions to save the id's of the pictures that a user has seen during his/hers visit.
My first question is: Can I use an array as a session variable? like this:
$arr = array(1, 2, 3, 4, 5);
session_start();
session_register("arr");
This array is to be passed on as an argument to a function used to find a random id,
that has not yet been seen. This array should be compared to another array with the
picture id's. There is two functions to accomplish the following: Create a randomized
array consisting of all the pictures id. Find one id in that randomized array that
does not exist in the array of allready seen pictures. These are the functions:
function show_pic($pics_voted, $cat, $sex) {
srand ((double) microtime() * 1000000);
$result = query("SELECT id FROM $cat WHERE sex='$sex'");
while ($row = mysql_fetch_row($result)) {
$arr[] = $row[0];
}
shuffle($arr);
$picture_id = find_id($pics_voted, $arr);
echo "picture_id => $picture_id";
return $picture_id;
}//show_pic
//Hitta id som inte finns bland $pics_voted[]
function find_id($pics_voted, $random, $x = 0) {
for ($i = 0; $i < count($pics_voted); $i++) {
if ($random[$x] == $pics_voted[$i] AND $x >= count($random)) return "no_pics"; //If
current key in $random[] is equal to current key in $pics_voted[] AND $x is greater
than, or equal to the number of keys in $random[], that is if the last key in
$random[] has been reached, return "no_pics"
elseif ($random[$x] == $pics_voted[$i]) {
find_id($pics_voted, $random, $x+1); //If current key in $random[] is equal to
current key in $pics_voted[] run the function again, with $x+1 as an argument to be
used in the $random[] array, that is: do the funtion again with the next key in
$random[]
}//elseif
}//for
return $random[$x];
}//find_id
Does anyone know why this ain't working? I get the same id over and over again. Maybe
there is an easuer way to achive what I want?
Please help!!