pappakaka Posted June 2, 2011 Share Posted June 2, 2011 Hi, i'm gonna try to explain my problem with as few words as possible. I have recently started this website: http://www.randommovietitle.com As you can see on the first page you can select a range of years and a number of genres from the Genre selection box. You can select 1, 2 or 3 genres and then click random. When you click random, a random movie should appear ONLY if it has ALL the genres you selected. Let me give you an example: You select Action and Comedy and click random. Only movies that has BOTH Action and Comedy will show up. (same thing if you select 3 genres ofcourse) The problem is that with the code I have now it isn't working! When I select, for example Drama and Sci-Fi. Every movie in the database that has Drama will show up, and every movie that has Sci-Fi will show up. What I need is so that only movies that has BOTH Drama and Sci-Fi appears. I'm not good AT ALL with php, I only know the very basic stuff. I got the code from a guy who was willing to help me at first but then coudn't do it anymore. I've been trying to change the code by myself for the past 3 days but got nowhere, only got more confused! The code below is ALL the code that has to do with the genre selection! This is the first page code: <form class="main_form" action="movies.php" method="post" name="form1"> <input class="random_btn" name="next_btn" value="Random" type="submit" onclick="return validate()" /><br /> <div class="index_bgbox"> <label class="genre_label" value="genre">Genre</label><br /> <select multiple="multiple" name="genre[]" id="genre" size="7"> <option value="1">2D Animation</option> <option value="2">3D Animation</option> <option value="3">Action</option> <option value="4">Adventure</option> <option value="5">Animals</option> <option value="6">Comedy</option> <option value="7">Comics Adaptation</option> <option value="8">Crime</option> <option value="9">Dance</option> <option value="10">Disaster</option> <option value="11">Documentary</option> <option value="12">Drama</option> <option value="13">Family</option> <option value="14">Fantasy</option> <option value="15">Fighting</option> <option value="16">Game Adaptation</option> <option value="17">History</option> <option value="18">Horror</option> <option value="19">Thriller</option> <option value="20">Romance</option> <option value="21">Music</option> <option value="22">Mystery</option> <option value="23">Parody</option> <option value="24">Psychological</option> <option value="25">Sci-Fi</option> <option value="26">Sport</option> <option value="27">Teen</option> <option value="28">War</option> <option value="29">Western</option> </select> <label class="year_label" value="YearForm">Year</label><br /> <select class="year_from" name="YearFrom"> <option value="">Select From</option> <option value="1970">1970</option> <option value="1971">1971</option> <option value="1972">1972</option> <option value="1973">1973</option> <option value="1974">1974</option> <option value="1975">1975</option> <option value="1976">1976</option> <option value="1977">1977</option> <option value="1978">1978</option> <option value="1979">1979</option> <option value="1980">1980</option> <option value="1981">1981</option> <option value="1982">1982</option> <option value="1983">1983</option> <option value="1984">1984</option> <option value="1985">1985</option> <option value="1986">1986</option> <option value="1987">1987</option> <option value="1988">1988</option> <option value="1989">1989</option> <option value="1990">1990</option> <option value="1991">1991</option> <option value="1992">1992</option> <option value="1993">1993</option> <option value="1994">1994</option> <option value="1995">1995</option> <option value="1996">1996</option> <option value="1997">1997</option> <option value="1998">1998</option> <option value="1999">1999</option> <option value="2000">2000</option> <option value="2001">2001</option> <option value="2002">2002</option> <option value="2003">2003</option> <option value="2004">2004</option> <option value="2005">2005</option> <option value="2006">2006</option> <option value="2007">2007</option> <option value="2008">2008</option> <option value="2009">2009</option> <option value="2010">2010</option> <option value="2011">2011</option> </select> <select class="year_to" name="YearTo"> <option value="">Select To</option> <option value="1970">1970</option> <option value="1971">1971</option> <option value="1972">1972</option> <option value="1973">1973</option> <option value="1974">1974</option> <option value="1975">1975</option> <option value="1976">1976</option> <option value="1977">1977</option> <option value="1978">1978</option> <option value="1979">1979</option> <option value="1980">1980</option> <option value="1981">1981</option> <option value="1982">1982</option> <option value="1983">1983</option> <option value="1984">1984</option> <option value="1985">1985</option> <option value="1986">1986</option> <option value="1987">1987</option> <option value="1988">1988</option> <option value="1989">1989</option> <option value="1990">1990</option> <option value="1991">1991</option> <option value="1992">1992</option> <option value="1993">1993</option> <option value="1994">1994</option> <option value="1995">1995</option> <option value="1996">1996</option> <option value="1997">1997</option> <option value="1998">1998</option> <option value="1999">1999</option> <option value="2000">2000</option> <option value="2001">2001</option> <option value="2002">2002</option> <option value="2003">2003</option> <option value="2004">2004</option> <option value="2005">2005</option> <option value="2006">2006</option> <option value="2007">2007</option> <option value="2008">2008</option> <option value="2009">2009</option> <option value="2010">2010</option> <option value="2011">2011</option> </select> </div> <?php include("Includes/footer.php"); ?> </form> Movie pages code: <?php require("Includes/connection.php"); $connection = @mysql_connect($ControlHost, $ControlUser, $ControlPass) or die("Couldn't connect to server"); $db = @mysql_select_db("$ControlDb", $connection) or die("Couldn't select database"); $genre_string=""; //$genre_string1=""; if(empty($_REQUEST['genreString1'])){ if(!empty($_REQUEST['genre'])){ $genre=$_REQUEST['genre']; $total_genre=count($genre); $genre_string1=""; for($i=0; $i<$total_genre;$i++){ $genre_string .= "Genree LIKE '%" . $genre[$i] . '%' . "'". " OR "; $genre_string1 .= $genre[$i] . " OR "; } $genre_string = substr($genre_string, 0, -4); $genre_string1 = substr($genre_string1, 0, -4); $genre_string = "WHERE" . "(" . $genre_string . ")"; } if( !empty($_REQUEST['YearFrom']) ){ $YearFrom = $_REQUEST['YearFrom']; $YearTo = $_REQUEST['YearTo']; if(!empty($_REQUEST['genre'])) $genre_string .= " AND "; else $genre_string .= "Where "; $genre_string .= "(YearFrom BETWEEN $YearFrom AND $YearTo)"; } }elseif(!empty($_REQUEST['genreString1'])){ $genre_string1 = $_REQUEST['genreString1']; $pieces = explode(" OR ", $genre_string1); for($ii=0; $ii<count($pieces);$ii++){ $genre_string .= "Genree LIKE '%" . trim($pieces[$ii]) . '%' . "'" . " OR "; $genre[]=trim($pieces[$ii]); } $genre_string = substr($genre_string, 0, -4); if( !is_numeric(trim($pieces[0]))) $genre_string = ""; else $genre_string = "WHERE" . "(" . $genre_string . ")"; if( !empty($_REQUEST['YearFrom']) ){//echo "111"; $YearFrom = $_REQUEST['YearFrom']; $YearTo = $_REQUEST['YearTo']; if( is_numeric(trim($pieces[0]))) $genre_string .= " AND (YearFrom BETWEEN $YearFrom AND $YearTo)"; if( !is_numeric(trim($pieces[0]))) $genre_string = " Where (YearFrom BETWEEN $YearFrom AND $YearTo)"; } }//echo $genre_string; //echo "SELECT * FROM movie $genre_string ORDER BY RAND() LIMIT 0,1<br />"; $result = mysql_query("SELECT * FROM movie $genre_string ORDER BY RAND() LIMIT 0,1"); //echo $er=mysql_num_rows($result);exit; $row = mysql_fetch_array($result); $MID = $row["MID"]; $Title = $row["Title"]; $YearFrom = $row["YearFrom"]; $RMTRating = $row["RMTRating"]; $IMDBRating = $row["IMDBRating"]; $Description = $row["Description"]; $Genree = $row["Genree"]; $Genree = explode(",", $Genree); $Poster = $row["Poster"]; $TrailerLink = $row["TrailerLink"]; $MoreInfo = $row["MoreInfo"]; ?> <table class="genrebox" border="0"> <tr> <td width="72"><b>Genres:</b> </td> <td width="170"> <?php if( !empty($Genree[1]) ){ if($Genree[1] == "1") echo "2D Animation"; elseif($Genree[1] == "2") echo "3D Animation"; elseif($Genree[1] == "3") echo "Action"; elseif($Genree[1] == "4") echo "Adventure"; elseif($Genree[1] == "5") echo "Animals"; elseif($Genree[1] == "6") echo "Comedy"; elseif($Genree[1] == "7") echo "Comics Adaptation"; elseif($Genree[1] == "8") echo "Crime"; elseif($Genree[1] == "9") echo "Dance"; elseif($Genree[1] == "10") echo "Disaster"; elseif($Genree[1] == "11") echo "Documentary"; elseif($Genree[1] == "12") echo "Drama"; elseif($Genree[1] == "13") echo "Family"; elseif($Genree[1] == "14") echo "Fantasy"; elseif($Genree[1] == "15") echo "Fighting"; elseif($Genree[1] == "16") echo "Game Adaptation"; elseif($Genree[1] == "17") echo "History"; elseif($Genree[1] == "18") echo "Horror"; elseif($Genree[1] == "19") echo "Thriller"; elseif($Genree[1] == "20") echo "Romance"; elseif($Genree[1] == "21") echo "Music"; elseif($Genree[1] == "22") echo "Mystery"; elseif($Genree[1] == "23") echo "Parody"; elseif($Genree[1] == "24") echo "Psychological"; elseif($Genree[1] == "25") echo "Sci-Fi"; elseif($Genree[1] == "26") echo "Sport"; elseif($Genree[1] == "27") echo "Teen"; elseif($Genree[1] == "28") echo "War"; elseif($Genree[1] == "29") echo "Western"; } ?> </td><br /> <td width="170"><?php if( !empty($Genree[2]) ){ if($Genree[2] == "1") echo "2D Animation"; elseif($Genree[2] == "2") echo "3D Animation"; elseif($Genree[2] == "3") echo "Action"; elseif($Genree[2] == "4") echo "Adventure"; elseif($Genree[2] == "5") echo "Animals"; elseif($Genree[2] == "6") echo "Comedy"; elseif($Genree[2] == "7") echo "Comics Adaptation"; elseif($Genree[2] == "8") echo "Crime"; elseif($Genree[2] == "9") echo "Dance"; elseif($Genree[2] == "10") echo "Disaster"; elseif($Genree[2] == "11") echo "Documentary"; elseif($Genree[2] == "12") echo "Drama"; elseif($Genree[2] == "13") echo "Family"; elseif($Genree[2] == "14") echo "Fantasy"; elseif($Genree[2] == "15") echo "Fighting"; elseif($Genree[2] == "16") echo "Game Adaptation"; elseif($Genree[2] == "17") echo "History"; elseif($Genree[2] == "18") echo "Horror"; elseif($Genree[2] == "19") echo "Thriller"; elseif($Genree[2] == "20") echo "Romance"; elseif($Genree[2] == "21") echo "Music"; elseif($Genree[2] == "22") echo "Mystery"; elseif($Genree[2] == "23") echo "Parody"; elseif($Genree[2] == "24") echo "Psychological"; elseif($Genree[2] == "25") echo "Sci-Fi"; elseif($Genree[2] == "26") echo "Sport"; elseif($Genree[2] == "27") echo "Teen"; elseif($Genree[2] == "28") echo "War"; elseif($Genree[2] == "29") echo "Western"; } ?></td> <td width="170"><?php if( !empty($Genree[3]) ){ if($Genree[3] == "1") echo "2D Animation"; elseif($Genree[3] == "2") echo "3D Animation"; elseif($Genree[3] == "3") echo "Action"; elseif($Genree[3] == "4") echo "Adventure"; elseif($Genree[3] == "5") echo "Animals"; elseif($Genree[3] == "6") echo "Comedy"; elseif($Genree[3] == "7") echo "Comics Adaptation"; elseif($Genree[3] == "8") echo "Crime"; elseif($Genree[3] == "9") echo "Dance"; elseif($Genree[3] == "10") echo "Disaster"; elseif($Genree[3] == "11") echo "Documentary"; elseif($Genree[3] == "12") echo "Drama"; elseif($Genree[3] == "13") echo "Family"; elseif($Genree[3] == "14") echo "Fantasy"; elseif($Genree[3] == "15") echo "Fighting"; elseif($Genree[3] == "16") echo "Game Adaptation"; elseif($Genree[3] == "17") echo "History"; elseif($Genree[3] == "18") echo "Horror"; elseif($Genree[3] == "19") echo "Thriller"; elseif($Genree[3] == "20") echo "Romance"; elseif($Genree[3] == "21") echo "Music"; elseif($Genree[3] == "22") echo "Mystery"; elseif($Genree[3] == "23") echo "Parody"; elseif($Genree[3] == "24") echo "Psychological"; elseif($Genree[3] == "25") echo "Sci-Fi"; elseif($Genree[3] == "26") echo "Sport"; elseif($Genree[3] == "27") echo "Teen"; elseif($Genree[3] == "28") echo "War"; elseif($Genree[3] == "29") echo "Western"; } ?></td> </tr> </table> </div> <?php } ?> <a id="various4" href="Includes/trailer.php?MID=<?php echo $MID;?>" class="trailer_btn" name="trailer_btn">Watch Trailer</a> <form action="movies.php" name="form1" method="post"> <input class="next_btn" name="next_btn" value="Randomize Again" type="submit" /> <input name="genreString1" value="<?php echo $genre_string1; ?>" type="hidden" /> <input name="YearTo" value="<?php echo $_REQUEST['YearTo']; ?>" type="hidden" /> <input name="YearFrom" value="<?php echo $_REQUEST['YearFrom']; ?>" type="hidden" /> </form> Quote Link to comment https://forums.phpfreaks.com/topic/238193-help-with-randomization/ Share on other sites More sharing options...
teynon Posted June 2, 2011 Share Posted June 2, 2011 $genre_string .= "Genree LIKE '%" . $genre[$i] . '%' . "'". " OR "; $genre_string1 .= $genre[$i] . " OR "; Change OR to AND. This is a logic issue. Quote Link to comment https://forums.phpfreaks.com/topic/238193-help-with-randomization/#findComment-1224005 Share on other sites More sharing options...
pappakaka Posted June 2, 2011 Author Share Posted June 2, 2011 It didn't do anything, still get all the movies in the database no matter what genre I select Quote Link to comment https://forums.phpfreaks.com/topic/238193-help-with-randomization/#findComment-1224019 Share on other sites More sharing options...
teynon Posted June 2, 2011 Share Posted June 2, 2011 uncomment this line: //echo "SELECT * FROM movie $genre_string ORDER BY RAND() LIMIT 0,1<br />"; and tell us what it says. Quote Link to comment https://forums.phpfreaks.com/topic/238193-help-with-randomization/#findComment-1224022 Share on other sites More sharing options...
pappakaka Posted June 2, 2011 Author Share Posted June 2, 2011 It says: SELECT * FROM movie ORDER BY RAND() LIMIT 0,1 Quote Link to comment https://forums.phpfreaks.com/topic/238193-help-with-randomization/#findComment-1224035 Share on other sites More sharing options...
teynon Posted June 2, 2011 Share Posted June 2, 2011 $genre_string is not being set up properly. You need to verify that those variables are being sent. I would do print_r($_POST); and run some echo statements inside of the genre_string statement to see if its being executed or not. Quote Link to comment https://forums.phpfreaks.com/topic/238193-help-with-randomization/#findComment-1224038 Share on other sites More sharing options...
pappakaka Posted June 2, 2011 Author Share Posted June 2, 2011 This is what I get if I put the print_r($_POST); inside the genre_string statement: Array ([next_btn] => Random [YearFrom] => ) I do not know if I did this correctly cause I try to understand but honestly I have no idea what I'm doing! Quote Link to comment https://forums.phpfreaks.com/topic/238193-help-with-randomization/#findComment-1224060 Share on other sites More sharing options...
teynon Posted June 2, 2011 Share Posted June 2, 2011 Honestly, given your last post, you should have someone else work on your PHP script. You have to submit the form for it to go through. This is PHP help, not PHP do it for you. You can probably get someone here to do it for like $10. Its an easy fix, but hard to explain. Not me, though. I'm at work. Quote Link to comment https://forums.phpfreaks.com/topic/238193-help-with-randomization/#findComment-1224073 Share on other sites More sharing options...
pappakaka Posted June 2, 2011 Author Share Posted June 2, 2011 Ok, what does the forum rules say about that? Can ju post a thread about paying someone for work? Quote Link to comment https://forums.phpfreaks.com/topic/238193-help-with-randomization/#findComment-1224082 Share on other sites More sharing options...
teynon Posted June 2, 2011 Share Posted June 2, 2011 Post it here: http://www.phpfreaks.com/forums/index.php?board=8.0 (PHP Freelancers) Quote Link to comment https://forums.phpfreaks.com/topic/238193-help-with-randomization/#findComment-1224093 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.