Здравейте , имам един каталог за филми , но имам проблем при извличането на информация от базата с данни .
Подкатегорите на филмите се записват в базата със запетайка , ето така изглежда в базата с данни : 8,18,26,
Обаче като се взима информация от базата се взима всяко едно число и за това отчида да речеме във нашият случай вместо 3 категории отчита 6 .
автоматично добавя и категория 1 - 2 - 6 прощо застото цислата са в базата с данни ....
Какво да променя в кода за да се оправи това .
Ето и кода :
<?php
$access = "true";
include_once "header.php";
?>
<div id="content-wrap">
<div id="main">
<h2>Каталог</h2>
<center>
<p>
<?php
$act = $_GET['act'];
switch ($act)
{
default:
$a = mysql_query("SELECT * FROM cats ORDER by id") or die(mysql_error());
$b = mysql_num_rows($a);
if ($b > 0)
{
while ($c = mysql_fetch_array($a))
{
$id = $c['id'];
$name = $c['name'];
echo "<a href='video.php?act=browse&cid=$id'>Каталог $name</a> ";
}
}
else
{
echo "Няма открити каталози.";
}
break;
case 'browse':
$cid = $_GET['cid'];
if (isset($cid) and !empty($cid) and $cid > 0)
{
$d = mysql_query("SELECT * FROM cats WHERE id='$cid'") or die(mysql_error());
$e = mysql_num_rows($d);
if ($e > 0)
{
$f = mysql_query("SELECT * FROM subcats WHERE cat='$cid' ORDER by id") or die(mysql_error());
$g = mysql_num_rows($f);
if ($g > 0)
{
echo "<form method='POST'>";
echo "<table>";
echo "<tr>";
$aa = 0;
while ($h = mysql_fetch_array($f))
{
$aa++;
$id = $h['id'];
$name = $h['name'];
echo "<td><a href='video.php?act=browse&cid=$cid&subcat=$id'>$name</a> <input type='checkbox' name='subcat[]' value='$id' style='vertical-align: middle;'></td>";
if ($aa > 3)
{
$aa = 0;
echo "</tr><tr>";
}
}
echo "</tr>";
echo "</table>";
echo "<center><input type='submit' name='submit' value='Покажи'></center>";
echo "</form>";
if (isset($_POST['submit']))
{
$subcat = $_POST['subcat'];
$ss = 0;
if (isset($subcat) and !empty($subcat))
{
foreach ($subcat as $subid)
{
$ss++;
if ($ss > 1)
{
$usloviea .= "or subcat LIKE '%$subid,%' ";
$cata .= "-$subid";
}
else
{
$usloviea .= "subcat LIKE '%$subid,%' ";
$cata .= "$subid";
}
}
$uslovie = "WHERE cat='$cid' and ".$usloviea." ORDER by id DESC";
$pagea = "video.php?act=browse&cid=$cid&subcat=$cata";
}
else
{
$uslovie = "WHERE cat='$cid' ORDER by id DESC";
$pagea = "video.php?act=browse&cid=$cid";
}
}
else
{
$sid = $_GET['subcat'];
if (isset($sid) and !empty($sid) and $sid > 0)
{
$pagea = "video.php?act=browse&cid=$cid&subcat=$sid";
$tire = explode("-",$sid);
if (count($tire) > 1)
{
$sss = 0;
foreach ($tire as $subcatid)
{
$sss++;
if ($sss > 1)
{
$uslovieb .= "or subcat LIKE '%$subcatid,%' ";
}
else
{
$uslovieb .= "subcat LIKE '%$subcatid%' ";
}
}
$uslovie = "WHERE cat='$cid' and $uslovieb ORDER by id DESC";
}
else
{
$uslovie = "WHERE cat='$cid' and subcat LIKE '%$sid,%' ORDER by id DESC";
}
}
else
{
$uslovie = "WHERE cat='$cid' ORDER by id DESC";
$pagea = "video.php?act=browse&cid=$cid";
}
}
$j = mysql_query("SELECT * FROM movies $uslovie") or die(mysql_error());
$k = mysql_num_rows($j);
if ($k > 0)
{
if(!isset($_GET['page']))
{
$page = 1;
}
else
{
if (is_numeric($_GET['page']) and $_GET['page'] > 0)
{
$page = $_GET['page'];
}
else
{
$page = 1;
}
}
echo "<table>";
echo "<tr><td class='result'>";
$max_results = $movies_per_page;
$from = (($page * $max_results) - $max_results);
$mysql = mysql_query("SELECT * FROM movies $uslovie LIMIT $from, $max_results");
$obshto = ceil(mysql_num_rows(mysql_query("SELECT * FROM movies $uslovie")) / $max_results);
if ($page > $obshto)
{
echo "Страницата не е намерена.";
}
else
{
echo "<table border='0' cellspacing='2' align='center'>";
while($r = mysql_fetch_array($mysql))
{
$vid = htmlspecialchars($r['id']);
$story = htmlspecialchars($r['story']);
$title = htmlspecialchars($r['name']);
$pic = htmlspecialchars($r['pic']);
$info = htmlspecialchars($r['info']);
if($pic != null)
{
$img = $pic;
}
else
{
$img = $noimg;
}
echo "<tr>";
echo "<td valign='top' class='resulttd'><a href='view.php?id=$vid' title='$title'><img src='$img' border='0' width='150' ></a></td>";
echo "<td class='infototd' valign='top'><a href='view.php?id=$vid' title='$title'><b>$title</b></a><br>$story</br></td>";
echo "</tr>";
}
echo"</table>";
echo "<br>";
echo "<center>Страници: ";
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM movies $uslovie"),0);
$total_pages = ceil($total_results / $max_results);
for($i = 1; $i <= $total_pages; $i++)
{
if(($page) == $i)
{
echo "$i ";
}
else
{
echo "<a href='$pagea&page=$i'>$i</a> ";
}
}
}
echo "</td></tr>";
echo "</table>";
}
else
{
echo "Няма намерени филми.";
}
}
else
{
echo "Няма намерени жанрове.";
}
}
else
{
echo "Каталога не е намерен.";
}
}
else
{
echo "Каталога не е намерен.";
}
break;
}
?>
</p>
</center>
<?php include_once "adsense.php"; ?>
<br />
</div>
<div id="sidebar">
<?php include_once "stats.php"; ?>
<?php include_once "friends.php"; ?>
</div>
</div>
<?php include_once "footer.php"; ?>
Подкатегорите на филмите се записват в базата със запетайка , ето така изглежда в базата с данни : 8,18,26,
Обаче като се взима информация от базата се взима всяко едно число и за това отчида да речеме във нашият случай вместо 3 категории отчита 6 .
автоматично добавя и категория 1 - 2 - 6 прощо застото цислата са в базата с данни ....
Какво да променя в кода за да се оправи това .
Ето и кода :
<?php
$access = "true";
include_once "header.php";
?>
<div id="content-wrap">
<div id="main">
<h2>Каталог</h2>
<center>
<p>
<?php
$act = $_GET['act'];
switch ($act)
{
default:
$a = mysql_query("SELECT * FROM cats ORDER by id") or die(mysql_error());
$b = mysql_num_rows($a);
if ($b > 0)
{
while ($c = mysql_fetch_array($a))
{
$id = $c['id'];
$name = $c['name'];
echo "<a href='video.php?act=browse&cid=$id'>Каталог $name</a> ";
}
}
else
{
echo "Няма открити каталози.";
}
break;
case 'browse':
$cid = $_GET['cid'];
if (isset($cid) and !empty($cid) and $cid > 0)
{
$d = mysql_query("SELECT * FROM cats WHERE id='$cid'") or die(mysql_error());
$e = mysql_num_rows($d);
if ($e > 0)
{
$f = mysql_query("SELECT * FROM subcats WHERE cat='$cid' ORDER by id") or die(mysql_error());
$g = mysql_num_rows($f);
if ($g > 0)
{
echo "<form method='POST'>";
echo "<table>";
echo "<tr>";
$aa = 0;
while ($h = mysql_fetch_array($f))
{
$aa++;
$id = $h['id'];
$name = $h['name'];
echo "<td><a href='video.php?act=browse&cid=$cid&subcat=$id'>$name</a> <input type='checkbox' name='subcat[]' value='$id' style='vertical-align: middle;'></td>";
if ($aa > 3)
{
$aa = 0;
echo "</tr><tr>";
}
}
echo "</tr>";
echo "</table>";
echo "<center><input type='submit' name='submit' value='Покажи'></center>";
echo "</form>";
if (isset($_POST['submit']))
{
$subcat = $_POST['subcat'];
$ss = 0;
if (isset($subcat) and !empty($subcat))
{
foreach ($subcat as $subid)
{
$ss++;
if ($ss > 1)
{
$usloviea .= "or subcat LIKE '%$subid,%' ";
$cata .= "-$subid";
}
else
{
$usloviea .= "subcat LIKE '%$subid,%' ";
$cata .= "$subid";
}
}
$uslovie = "WHERE cat='$cid' and ".$usloviea." ORDER by id DESC";
$pagea = "video.php?act=browse&cid=$cid&subcat=$cata";
}
else
{
$uslovie = "WHERE cat='$cid' ORDER by id DESC";
$pagea = "video.php?act=browse&cid=$cid";
}
}
else
{
$sid = $_GET['subcat'];
if (isset($sid) and !empty($sid) and $sid > 0)
{
$pagea = "video.php?act=browse&cid=$cid&subcat=$sid";
$tire = explode("-",$sid);
if (count($tire) > 1)
{
$sss = 0;
foreach ($tire as $subcatid)
{
$sss++;
if ($sss > 1)
{
$uslovieb .= "or subcat LIKE '%$subcatid,%' ";
}
else
{
$uslovieb .= "subcat LIKE '%$subcatid%' ";
}
}
$uslovie = "WHERE cat='$cid' and $uslovieb ORDER by id DESC";
}
else
{
$uslovie = "WHERE cat='$cid' and subcat LIKE '%$sid,%' ORDER by id DESC";
}
}
else
{
$uslovie = "WHERE cat='$cid' ORDER by id DESC";
$pagea = "video.php?act=browse&cid=$cid";
}
}
$j = mysql_query("SELECT * FROM movies $uslovie") or die(mysql_error());
$k = mysql_num_rows($j);
if ($k > 0)
{
if(!isset($_GET['page']))
{
$page = 1;
}
else
{
if (is_numeric($_GET['page']) and $_GET['page'] > 0)
{
$page = $_GET['page'];
}
else
{
$page = 1;
}
}
echo "<table>";
echo "<tr><td class='result'>";
$max_results = $movies_per_page;
$from = (($page * $max_results) - $max_results);
$mysql = mysql_query("SELECT * FROM movies $uslovie LIMIT $from, $max_results");
$obshto = ceil(mysql_num_rows(mysql_query("SELECT * FROM movies $uslovie")) / $max_results);
if ($page > $obshto)
{
echo "Страницата не е намерена.";
}
else
{
echo "<table border='0' cellspacing='2' align='center'>";
while($r = mysql_fetch_array($mysql))
{
$vid = htmlspecialchars($r['id']);
$story = htmlspecialchars($r['story']);
$title = htmlspecialchars($r['name']);
$pic = htmlspecialchars($r['pic']);
$info = htmlspecialchars($r['info']);
if($pic != null)
{
$img = $pic;
}
else
{
$img = $noimg;
}
echo "<tr>";
echo "<td valign='top' class='resulttd'><a href='view.php?id=$vid' title='$title'><img src='$img' border='0' width='150' ></a></td>";
echo "<td class='infototd' valign='top'><a href='view.php?id=$vid' title='$title'><b>$title</b></a><br>$story</br></td>";
echo "</tr>";
}
echo"</table>";
echo "<br>";
echo "<center>Страници: ";
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM movies $uslovie"),0);
$total_pages = ceil($total_results / $max_results);
for($i = 1; $i <= $total_pages; $i++)
{
if(($page) == $i)
{
echo "$i ";
}
else
{
echo "<a href='$pagea&page=$i'>$i</a> ";
}
}
}
echo "</td></tr>";
echo "</table>";
}
else
{
echo "Няма намерени филми.";
}
}
else
{
echo "Няма намерени жанрове.";
}
}
else
{
echo "Каталога не е намерен.";
}
}
else
{
echo "Каталога не е намерен.";
}
break;
}
?>
</p>
</center>
<?php include_once "adsense.php"; ?>
<br />
</div>
<div id="sidebar">
<?php include_once "stats.php"; ?>
<?php include_once "friends.php"; ?>
</div>
</div>
<?php include_once "footer.php"; ?>