PageRenderTime 52ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/tab_advancedsearch.php

http://thegamesdb.googlecode.com/
PHP | 145 lines | 136 code | 6 blank | 3 comment | 42 complexity | d3036b04db451d5202292b1237c96725 MD5 | raw file
Possible License(s): AGPL-1.0, LGPL-2.1, GPL-2.0, AGPL-3.0, BSD-3-Clause
  1. <?
  2. ##Checks if criteria is entered/valid and builds WHERE statement
  3. if($searching){
  4. $seriesname = mysql_real_escape_string($seriesname);
  5. $genre = mysql_real_escape_string($genre);
  6. $network = mysql_real_escape_string($network);
  7. $order = mysql_real_escape_string($order);
  8. $endyear = Date("Y")+2;
  9. $where = "WHERE 1";
  10. if ($language > 0 && $language < 100){$where.=" and translation_seriesname.languageid = $language";}
  11. if ($year >= 1900 && $year <= $endyear){$where.=" and year(FirstAired) = ".$year;}elseif($year != ""){$errmsg.="Year must be between 1900 and ".$endyear."<br>";unset($searching);}
  12. if ($imdb_id == "null"){unset($imdb_id); $where.=" and imdb_id is null";}
  13. if (strtolower(substr($imdb_id,0,2)) == "tt" && substr($imdb_id,2,12) >= 1 && substr($imdb_id,2,12) < 999999999){$where.=" and imdb_id = '".$imdb_id."'";}elseif($imdb_id != ""){$errmsg.="Invalid IMDB.com ID.<br>";unset($searching);}
  14. if ($tvcom_id == "null"){unset($tvcom_id); $where.=" and games.SeriesID is null";}
  15. if ($tvcom_id > 0 && $tvcom_id < 9999999){$where.=" and games.SeriesID = '".$tvcom_id."'";}elseif($tvcom_id != ""){$errmsg.="Invalid tv.com ID.<br>";unset($searching);}
  16. if (strtoupper(substr($zap2it_id,0,2)) == "SH" && substr($zap2it_id,2,12) >= 1 && substr($zap2it_id,2,12) < 999999999){$where.=" and zap2it_id = '".$zap2it_id."'";}elseif($zap2it_id != ""){$errmsg.="Invalid zap2it.com ID.<br>";unset($searching);}
  17. if (strlen($seriesname) > 1 && strlen($seriesname) < 80){$where.=" and translation_seriesname.translation LIKE '%".$seriesname."%' ";}elseif($seriesname != ""){$errmsg=$errmsg."Series names must be inbetween 2 and 80 characters in length.<br>";unset($searching);}
  18. if (strlen($genre) > 3 && strlen($genre) < 26){$where.=" and games.Genre like '%".$genre."%' ";}
  19. if (strlen($network) > 1 && strlen($network) <= 30){$where.=" and games.network like '%".$network."%' ";}elseif($network != ""){$errmsg=$errmsg."Network must be between 2 and 30 characters.<br>";unset($searching);}
  20. if (strlen($order) > 2 && strlen($order) < 15){$orderby=" ORDER BY ".$order;}else{$errmsg.="Invalid order option.<br>";unset($searching);}
  21. }
  22. ##Displays search options if no search criteria has been given.
  23. if(!$searching){?>
  24. <div class="section">
  25. <h1>Advanced Search</h1>
  26. <p id="red"><?=$errmsg?></p>
  27. <form action="index.php" method="GET">
  28. <table border="0" cellspacing="0" cellpadding="2" width="50%">
  29. <tr>
  30. <td>Series Name: </td>
  31. <td><input type="text" name="seriesname" maxlength="80" STYLE="width: 140px" value="<?=$seriesname?>"></td>
  32. <td></td>
  33. </tr>
  34. <tr>
  35. <td>Language: </td>
  36. <td>
  37. <select name="language" STYLE="width: 145px">
  38. <option value=''>All</option>
  39. <?$query = "SELECT * FROM languages";
  40. $result = mysql_query($query) or die('Query failed: List ' . mysql_error());
  41. while ($languagelist = mysql_fetch_object($result)) {
  42. print "<option value='$languagelist->id'>$languagelist->name</option>\n";
  43. }?>
  44. </select>
  45. </td>
  46. <td></td>
  47. </tr>
  48. <tr>
  49. <td>Genre: </td>
  50. <td>
  51. <select name="genre" STYLE="width: 145px">
  52. <option value=''>All</option>
  53. <?$query = "SELECT * FROM genres";
  54. $result = mysql_query($query) or die('Query failed: List ' . mysql_error());
  55. while ($languagelist = mysql_fetch_object($result)) {
  56. print "<option value='$languagelist->genre'>$languagelist->genre</option>\n";
  57. }?>
  58. </select>
  59. </td>
  60. <td></td>
  61. </tr>
  62. <tr>
  63. <td>Year: </td>
  64. <td><input type="text" name="year" maxlength="4" STYLE="width: 140px" value="<?=$year?>"></td>
  65. <td></td>
  66. </tr>
  67. <tr>
  68. <td>Network: </td>
  69. <td><input type="text" name="network" maxlength="30" STYLE="width: 140px" value="<?=$network?>"></td>
  70. <td></td>
  71. </tr>
  72. <tr>
  73. <td>Zap2it: </td>
  74. <td><input type="text" name="zap2it_id" maxlength="11" STYLE="width: 140px" value="<?=$zap2it_id?>"></td>
  75. <td id="formnote">Must include leading SH</td>
  76. </tr>
  77. <tr>
  78. <td>TV.com ID: </td>
  79. <td><input type="text" name="tvcom_id" maxlength="7" STYLE="width: 140px" value="<?=$tvcom_id?>"></td>
  80. <td></td>
  81. </tr>
  82. <tr>
  83. <td>IMDB.com ID:</td>
  84. <td><input type="text" name="imdb_id" maxlength="11" STYLE="width: 140px" value="<?=$imdb_id?>"></td>
  85. <td id="formnote">Must include leading TT</td>
  86. </tr>
  87. <tr>
  88. <td>Order By:</td>
  89. <td>
  90. <select name="order" STYLE="width: 145px">
  91. <option value='translation'>Series Name</option>
  92. <option value='name'>Language</option>
  93. <option value='Status'>Status</option>
  94. <option value='Network'>Network</option>
  95. <option value='Genre'>Genre</option>
  96. <option value='srating desc'>Rating</option>
  97. </select>
  98. </td>
  99. <td id="formnote"></td>
  100. </tr>
  101. <tr>
  102. <td></td>
  103. <td>
  104. <input type="submit" value="Search" name="searching">
  105. <input type="hidden" name="tab" value="advancedsearch">
  106. </td>
  107. <td></td>
  108. </tr>
  109. </table>
  110. </form>
  111. </div>
  112. <?
  113. ##Displays results if search criteria was given.
  114. }else{?>
  115. <div class="section">
  116. <h1>Results - 50 Max</h1>
  117. <table width="100%" border="0" cellspacing="0" cellpadding="2" align="center" id="listtable">
  118. <tr>
  119. <td class="head"></td>
  120. <td class="head"><a href="./?<?echo str_replace("order=".$order, "order=translation", $_SERVER['QUERY_STRING']);?>">Series Name</a></td>
  121. <td class="head"><a href="./?<?echo str_replace("order=".$order, "order=Genre", $_SERVER['QUERY_STRING']);?>">Genre</a></td>
  122. <td class="head"><a href="./?<?echo str_replace("order=".$order, "order=Status", $_SERVER['QUERY_STRING']);?>">Status</a></td>
  123. <td class="head"><a href="./?<?echo str_replace("order=".$order, "order=name", $_SERVER['QUERY_STRING']);?>">Language</a></td>
  124. <td class="head"><a href="./?<?echo str_replace("order=".$order, "order=Network", $_SERVER['QUERY_STRING']);?>">Network</a></td>
  125. <td class="head"><a href="./?<?echo str_replace("order=".$order, "order=srating desc", $_SERVER['QUERY_STRING']);?>">Rating</a></td>
  126. </tr>
  127. <?
  128. $query = "SELECT *, games.id as showid, (SELECT round(avg(rating)) FROM ratings WHERE itemid = games.id and itemtype='series') AS srating FROM (translation_seriesname INNER JOIN games ON translation_seriesname.seriesid = games.id) INNER JOIN languages ON translation_seriesname.languageid = languages.id ".$where.$orderby." LIMIT 50";
  129. $result = mysql_query($query) or die('Query failed: List ' . mysql_error());
  130. while ($serieslist = mysql_fetch_object($result)) {
  131. if ($class == 'odd') { $class = 'even'; } else { $class = 'odd'; }
  132. $seriescount++;
  133. print "<tr><td class=\"$class\">$seriescount</td><td class=\"$class\"><a href=\"/index.php?tab=series&amp;id=$serieslist->showid&amp;lid=$serieslist->languageid\">$serieslist->translation</a></td><td class=\"$class\">$serieslist->Genre</a></td><td class=\"$class\">$serieslist->Status</td><td class=\"$class\">$serieslist->name</td><td class=\"$class\">$serieslist->Network</td><td class=\"$class\">$serieslist->srating</td></tr>\n";
  134. }
  135. if ($seriescount == 0){echo "<tr><td class='odd' colspan='4'>No Series found.</td></tr>";}
  136. ?>
  137. </table>
  138. </div>
  139. <?}?>