Есть код который выводит следующее видео просто по id а надо что бы выводилось следующее видео по данной категории CAT - поле в таблице date которое соответствует данной категории. Код (PHP): <? include ("blocks/db.php"); ?> <? if (isset($_GET['id'])) {$id = $_GET['id']; } if (!isset($id)) {$id = 1;} $result = mysql_query("SELECT `date`.*, `categories`.`tit`, IF(DATE(`date`) = CURDATE(), 'СЕГОДНЯ', IF(DATE(`date`) = CURDATE()-INTERVAL 1 DAY, 'ВЧЕРА', `date`)) `date` FROM date LEFT JOIN categories ON categories.idd = date.cat WHERE date.id='$id'",$db); if (!$result){echo "<p>Запрос не возможен</p>"; exit(mysql_error());} if (mysql_num_rows($result) > 0){ $myrow = mysql_fetch_array($result); $new_view = $myrow["view"] + 1; $update = mysql_query ("UPDATE date SET view='$new_view' WHERE id='$id'",$db);} else{echo "<meta http-equiv='Refresh' content='0; url=index.php'>"; exit();} ?> <? $result77 = mysql_query("SELECT str FROM options", $db); $myrow77 = mysql_fetch_array($result77); $num = $myrow77["str"]; @$str = $_GET['str']; $result00 = mysql_query("SELECT COUNT(*) FROM date"); $temp = mysql_fetch_array($result00); $posts = $temp[0]; $total = (($posts - 1) / $num) + 1; $total = intval($total); $str = intval($str); if(empty($str) or $str < 0) $str = 1; if($str > $total) $str = $total; $start = $str * $num - $num; $result = mysql_query("SELECT `date`.*, `categories`.`tit`, IF(DATE(`date`) = CURDATE(), 'СЕГОДНЯ', IF(DATE(`date`) = CURDATE()-INTERVAL 1 DAY, 'ВЧЕРА', `date`)) `date` FROM date LEFT JOIN categories ON categories.idd = date.cat WHERE date.id+1='$id'",$db); if (mysql_num_rows($result) > 0) { print "<table align=center>"; while ($myrow = mysql_fetch_array($result)) { echo ($c%1 == 0 ? '<tr>' : ''); print "<td width=240>"; printf( "<div class='rol'> <a href='video.php?id=%s' title='%s' class=title> <ins> <img src='%s' title='%s' alt='%s - Ролик'> <span class='time'>%s</span> <span class='kat'>%s</span> <span class='thumb_views'><span class='views'>%s</span></span> <span class='rast'>%s</span> </ins> <div class='title_a'>%s</div></a></div> ",$myrow['id'],$myrow['title'],$myrow['mini_img'],$myrow['title'],$myrow['title'],$myrow['prod'],$myrow['tit'],$myrow['view'],$myrow['date'],$myrow['title']); print "</td>"; echo ($c%1 == 1 ? '</tr>' : ''); $c++; } print "</table><br>"; ?> <? if ($total > 1){Error_Reporting(E_ALL & ~E_NOTICE); echo ""; echo $page3left.$page2left.$page1left.'<a class=active>'.$page.'</a>'.$page1right.$page2right.$page3right.$page4right.$page5right.$page6right.$page7right.$page8right.$page9right.$nextpage; echo "";}} else{echo "<div class=verh_m align=center>Извините это самый первый ролик!</div>";} ?> а этот код выводящий само видео Код (PHP): <? $result50 = mysql_query ("SELECT COUNT(*) FROM date WHERE cat='$cat'",$db); $sum50 = mysql_fetch_array($result50); echo <<< PLAYER <div id="flashcontent" style="background-color:#000; width: 465px; height: 415px;" > <object type="application/x-shockwave-flash" data="http://tubecontext/wmblack4.swf" width="465" height="400"> <!--[if IE]> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="600" height="400"> <param name="movie" value="http://tubecontext/wmblack4.swf" allowScriptAccess="always" wmode="opaque" allowFullScreen="true" flashvars="xmlfile=http://tubecontext/playlist.php%3Fv={$myrow["video"]}%26i={$myrow["mini_img"]}&thumbs_ad_feedurl=http://feeds.tubecontext.com/MiddlePlayer.php%3Fx=313135377c313733347c383036&imagetext_ad_feedurl=http://feeds.tubecontext.com/BottomPlayer.php%3Fx=313135377c313733357c383036" /> <!--> <param name="loop" value="true" /> <param name="menu" value="false" /> <param name="allowScriptAccess" value="always" /> <param name="allowFullScreen" value="true" /> <param name="flashvars" value="xmlfile=http://tubecontext/playlist.php%3Fv={$myrow["video"]}%26i={$myrow["mini_img"]}&thumbs_ad_feedurl=http://feeds.tubecontext.com/MiddlePlayer.php%3Fx=313135377c313733347c383036&imagetext_ad_feedurl=http://feeds.tubecontext.com/BottomPlayer.php%3Fx=313135377c313733357c383036" /> </object> </div> PLAYER; ?>
Этот код выводит следующее видео по id вне зависимости к какой категории он относится, а нужно что бы следующее видео было одной категории с тем который проигрывается.
советую так взглянуть на документацию mysql http://dev.mysql.com/doc/refman/5.1/en/query-cache-operation.html
К твоему вопросу не имеет отношения но привел ссылку что бы ты подумал что можно улучшить. Даю второй шанс.
Я у вас структуру таблицы с видео не понял. Даже как она обзывается А вообще, наверное что-то вроде этого должно работать: Код (Text): select * from video where cat_id=12 and id>14 order by id asc limit 1; Т.е. получить видео из 12-й категори, с id > 14. Поскольку запрос, по идее, должен вернуть первое из видео 12 категории с id > 14, оно и будет следующим
1-я таблица это категории видео (categories) где idd-это порядковый номер категории и tit-название самой категории. 2-я таблица это где вся информация о видео (date) где id-это порядковый номер видео, cat-номер категории к которой он относится. И если я ставлю номер категории вручную WHERE date.cat=7 то выводятся все видео из категории 7 Код (Text): $result = mysql_query("SELECT `date`.*, `categories`.`tit`,`idd`, IF(DATE(`date`) = CURDATE(), 'СЕГОДНЯ', IF(DATE(`date`) = CURDATE()-INTERVAL 1 DAY, 'ВЧЕРА', `date`)) `date` FROM date LEFT JOIN categories ON date.cat = categories.idd WHERE date.cat=6",$db);
Ну поменяйте название таблицы в моём запросе, подставьте переменные... date - это по-англицки дата, поэтому я и не смог понять, что у вас происходит. А данные - data
Так не работает Код (Text): where cat_id='$cat' and id>'$id' order by id asc limit 1",$db); а так то же самое выводится видео следующее по id Код (Text): where id>'$id' order by id asc limit 1",$db);
Ну блин, вы хоть разбираете пример, прежде чем копипастить? Я же не знаю, как в вашей таблице поля называются. Вроде у вас date.cat категория? А у меня cat_id. Догадываетесь, что поменять надо?
http://sqlfiddle.com/ - засуньте ваши таблицы сюда, я так не понимаю, что там у вас не получается. Добавлено спустя 51 секунду: Запрос я составил вроде логично
http://sqlfiddle.com/ - засуньте ваши таблицы сюда, я так не понимаю, что там у вас не получается. А что это?
Не видно что-ли - виртуальный mysql ну я не вижу запросы ваши так, а отлаживать программы вы явно не умеете. Вывести запрос на экран, попробовать его в phpmyadmin...
гы, база порнухи Добавлено спустя 11 минут 37 секунд: Код (PHP): $active_video_id = 25; $sql = 'SELECT * FROM `date` `d1` INNER JOIN `date` `d2` ON `d2`.`id` = '.$active_video_id.' AND `d2`.`cat` = `d1`.`cat` AND `d1`.`id` != '.$active_video_id;
Код (PHP): $active_video_id = 25; $sql = 'SELECT * FROM `date` `d1` INNER JOIN `date` `d2` ON `d2`.`id` = '.$active_video_id.' AND `d2`.`cat` = `d1`.`cat` AND `d1`.`id` != '.$active_video_id; [/quote] так тоже не выходит
ты уверен, что «так тоже не выходит» — это именно то, на основании чего тебе кто-то сможет помочь? Добавлено спустя 58 секунд: но вообще, мой запрос выбирает все видео из категории активного ролика
смотри сам Код (Text): <? include ("blocks/db.php"); ?> <? if (isset($_GET['id'])) {$id = $_GET['id']; } if (!isset($id)) {$id = 1;} $result = mysql_query("SELECT `date`.*, `categories`.`tit`, IF(DATE(`date`) = CURDATE(), 'СЕГОДНЯ', IF(DATE(`date`) = CURDATE()-INTERVAL 1 DAY, 'ВЧЕРА', `date`)) `date` FROM date LEFT JOIN categories ON categories.idd = date.cat WHERE date.id='$id'",$db); if (!$result){echo "<p>Запрос не возможен</p>"; exit(mysql_error());} if (mysql_num_rows($result) > 0){ $myrow = mysql_fetch_array($result); $new_view = $myrow["view"] + 1; $update = mysql_query ("UPDATE date SET view='$new_view' WHERE id='$id'",$db);} else{echo "<meta http-equiv='Refresh' content='0; url=index.php'>"; exit();} ?> <? $result77 = mysql_query("SELECT str FROM options", $db); $myrow77 = mysql_fetch_array($result77); $num = $myrow77["str"]; @$str = $_GET['str']; $result00 = mysql_query("SELECT COUNT(*) FROM date"); $temp = mysql_fetch_array($result00); $posts = $temp[0]; $total = (($posts - 1) / $num) + 1; $total = intval($total); $str = intval($str); if(empty($str) or $str < 0) $str = 1; if($str > $total) $str = $total; $start = $str * $num - $num; $active_video_id = 25; $sql = 'SELECT * FROM `date` `d1` INNER JOIN `date` `d2` ON `d2`.`id` = '.$active_video_id.' AND `d2`.`cat` = `d1`.`cat` AND `d1`.`id` != '.$active_video_id; if (mysql_num_rows($result) > 0) { print "<table align=center>"; while ($myrow = mysql_fetch_array($result)) { echo ($c%1 == 0 ? '<tr>' : ''); print "<td width=240>"; printf( "<div class='rol'> <a href='porno-video.php?id=%s' title='%s - Порно ролик' class=title> <ins> <img src='%s' title='%s - Секс ролик' alt='%s - Ролик'> <span class='time'>%s</span> <span class='kat'>%s</span> <span class='thumb_views'><span class='views'>%s</span></span> <span class='rast'>%s</span> </ins> <div class='title_a'>%s</div></a></div> ",$myrow['id'],$myrow['title'],$myrow['mini_img'],$myrow['title'],$myrow['title'],$myrow['prod'],$myrow['tit'],$myrow['view'],$myrow['date'],$myrow['title']); print "</td>"; echo ($c%1 == 1 ? '</tr>' : ''); $c++; } print "</table><br>"; ?> <? if ($total > 1){Error_Reporting(E_ALL & ~E_NOTICE); echo ""; echo $page3left.$page2left.$page1left.'<a class=active>'.$page.'</a>'.$page1right.$page2right.$page3right.$page4right.$page5right.$page6right.$page7right.$page8right.$page9right.$nextpage; echo "";}} else{echo "<div class=verh_m align=center>Извините это самый первый порно ролик!</div>";} ?> <? if (isset($_GET['id'])) {$id = $_GET['id']; } if (!isset($id)) {$id = 1;} $result = mysql_query("SELECT `date`.*, `categories`.`tit`, IF(DATE(`date`) = CURDATE(), 'СЕГОДНЯ', IF(DATE(`date`) = CURDATE()-INTERVAL 1 DAY, 'ВЧЕРА', `date`)) `date` FROM date LEFT JOIN categories ON categories.idd = date.cat WHERE date.id='$id'",$db); if (!$result){echo "<p>Запрос не возможен</p>"; exit(mysql_error());} if (mysql_num_rows($result) > 0){ $myrow = mysql_fetch_array($result); $new_view = $myrow["view"] + 1; $update = mysql_query ("UPDATE date SET view='$new_view' WHERE id='$id'",$db);} else{echo "<meta http-equiv='Refresh' content='0; url=index.php'>"; exit();} ?> <td width="500" align="center" valign="top"> <div class="video_rol"> <strong style="color:#FF0000;" align="center"><? echo $myrow["title"]; ?></strong> <? $result50 = mysql_query ("SELECT COUNT(*) FROM date WHERE cat='$cat'",$db); $sum50 = mysql_fetch_array($result50); echo <<< PLAYER <div id="flashcontent" style="background-color:#000; width: 465px; height: 415px;" > <!--[if !IE]> --> <object type="application/x-shockwave-flash" data="http://xxx-leshiy.ru/tubecontext/wmblack4.swf" width="465" height="400"> <!-- <![endif]--> <!--[if IE]> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="600" height="400"> <param name="movie" value="http://xxx-leshiy.ru/tubecontext/wmblack4.swf" allowScriptAccess="always" wmode="opaque" allowFullScreen="true" flashvars="xmlfile=http://xxx-leshiy.ru/tubecontext/playlist.php%3Fv={$myrow["video"]}%26i={$myrow["mini_img"]}&thumbs_ad_feedurl=http://feeds.tubecontext.com/MiddlePlayer.php%3Fx=313135377c313733347c383036&imagetext_ad_feedurl=http://feeds.tubecontext.com/BottomPlayer.php%3Fx=313135377c313733357c383036" /> <!--> <param name="loop" value="true" /> <param name="menu" value="false" /> <param name="allowScriptAccess" value="always" /> <param name="allowFullScreen" value="true" /> <param name="flashvars" value="xmlfile=http://xxx-leshiy.ru/tubecontext/playlist.php%3Fv={$myrow["video"]}%26i={$myrow["mini_img"]}&thumbs_ad_feedurl=http://feeds.tubecontext.com/MiddlePlayer.php%3Fx=313135377c313733347c383036&imagetext_ad_feedurl=http://feeds.tubecontext.com/BottomPlayer.php%3Fx=313135377c313733357c383036" /> </object> <!-- <![endif]--> </div> PLAYER; ?>