Здравейте,
имам малък проблем със въпрос скрипт, проблема идва след формата за търсене, избирам критерийте за търсене, изпращам резилтатите и след това севиждат само номерата на страници, и бутоните за напред и последна страница но не излизат резултатите. Проблем идва само на тоя скрипт, предполагам че съм объркал някаде, на другите места работи без проблеми.
КОД:
<?php
include "dbcon.php";
if(isset($_POST['submit']) || (isset($_GET['page'])) ){
$category = strip_tags($_POST['category']);
$offer_type = strip_tags($_POST['offer_type']);
$location = strip_tags($_POST['location']);
$results = 0 ;
mysql_connect($host,$dbuser,$dbpass) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());
// определяме колко реда да ни показва. В случая 20 на страница.
$broinastranica = 5;
// от коя страница да почне да показва.Може да искаме да е от втора или от последна.
$pageNum = 1;
// ако има получени данни $_GET['page'] ще покаже страницата с номер $_GET['page']
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
//тука определяме кои редове ще се показват - примерно ако $_GET['page']=2
// ще покаже от 20 до 40-ти ред.
$redove = ($pageNum - 1) * $broinastranica;
//заявката ще върне само посочените редове - примерно от 20 до 40 в зависимост от $_GET['page']
$query = " SELECT * FROM estate WHERE category LIKE '$category' && offer_type LIKE '$offer_type' && location LIKE '$location' " . " LIMIT $redove, $broinastranica";
$result = mysql_query($query) or die('Error, query failed1');
mysql_close();
// print-ваме посочените редове в таблица.
while($row = mysql_fetch_array($result))
{
echo "
<div style=\"width:335px; height:100px;background-color: green;\" >
<div style=\"float: left; width:105px; height:100px;\">
<a href=\"index.php?offerid=$row[id]\"><img src=\"$row[pic1]\" style=\"width:100px; height:100px; border:0\" /></a>
</div>
<div class=\"showtext\" style=\"float:right;\">
<a href=\"index.php?offerid=$row[id]\" style=\"text-decoration:none; color:black;\">
<b>Оферта</b>: $row[id]</a><br />
<b>Категория</b>: $row[category] <br />
<b>Тип</b>: $row[offer_type]<br />
<b>Местонахождение</b>: $row[location] <br />
<b>Цена</b>: $row[price]лв. <br />
</div>
</div>
<hr width=\"100px\" style=\"border: 2px; color: black;\">
";
$results = 1;
}
// проверяваме таблицата колко редове има
mysql_connect($host,$dbuser,$dbpass) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());
$query = "SELECT COUNT(id) AS numrows FROM estate";
$result = mysql_query($query) or die('Error, query failed2');
mysql_close();
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$maxPage = ceil($numrows/$broinastranica);
$self = $_SERVER['PHP_SELF'];
$nomeranastranici = '';
for($page = 1; $page <= $maxPage; $page++){
if ($page == $pageNum)
{
$nomeranastranici .= " $page ";
}else{
$nomeranastranici .= " <a href=\"$self?p=4&page=$page\">$page</a> ";
}
}
// създаване на ликовете [предишна] [следваща]
// както и линковете [първа] и [последна]
if ($pageNum > 1){
$page = $pageNum - 1;
$predishna = " <a href=\"$self?p=4&page=$page\"> [<<<] </a> ";
$parva = " <a href=\"$self?p=4&page=1\">[първа]</a> ";
}else{
$predishna = ' ';
$parva = ' ';
}
if ($pageNum < $maxPage){
$page = $pageNum + 1;
$sledvashta = " <a href=\"$self?p=4&page=$page\"> [>>>] </a> ";
$posledna = " <a href=\"$self?p=4&page=$maxPage\">[последна]</a> ";
}else{
$sledvashta = ' ';
$posledna = ' ';
}
// показваме
echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna;
}else{
echo "
<div style=\"text-align: right; float: left;\">
<form action=\"index.php?p=4\" method=\"post\">
Категория на имота:
<select name=\"category\">
<option value=\"0\">Моля изберете</option>
<option value=\"1\">Къща</option>
<option value=\"2\">Апартамент</option>
<option value=\"3\">Вила</option>
<option value=\"4\">Земеделски Имот</option>
<option value=\"5\">Горски Имот</option>
<option value=\"6\">Парцел в населено място</option>
</select><br />
Тип на офертата:
<select name=\"offer_type\">
<option value=\"0\">Моля изберете</option>
<option value=\"1\">Купувам</option>
<option value=\"2\">Продавам</option>
<option value=\"3\">Под наем</option>
</select><br />
Местонахождение:
<select name=\"location\">
<option value=\"0\">Моля изберете</option>
<option value=\"1\">Монтана</option>
<option value=\"2\">Обл. Монтана</option>
<option value=\"3\">Друго </option>
</select><br /><br />
<input type=\"submit\" name=\"submit\" value=\"Търси\" />
</form>
</div>
";
}
?>
имам малък проблем със въпрос скрипт, проблема идва след формата за търсене, избирам критерийте за търсене, изпращам резилтатите и след това севиждат само номерата на страници, и бутоните за напред и последна страница но не излизат резултатите. Проблем идва само на тоя скрипт, предполагам че съм объркал някаде, на другите места работи без проблеми.
КОД:
<?php
include "dbcon.php";
if(isset($_POST['submit']) || (isset($_GET['page'])) ){
$category = strip_tags($_POST['category']);
$offer_type = strip_tags($_POST['offer_type']);
$location = strip_tags($_POST['location']);
$results = 0 ;
mysql_connect($host,$dbuser,$dbpass) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());
// определяме колко реда да ни показва. В случая 20 на страница.
$broinastranica = 5;
// от коя страница да почне да показва.Може да искаме да е от втора или от последна.
$pageNum = 1;
// ако има получени данни $_GET['page'] ще покаже страницата с номер $_GET['page']
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
//тука определяме кои редове ще се показват - примерно ако $_GET['page']=2
// ще покаже от 20 до 40-ти ред.
$redove = ($pageNum - 1) * $broinastranica;
//заявката ще върне само посочените редове - примерно от 20 до 40 в зависимост от $_GET['page']
$query = " SELECT * FROM estate WHERE category LIKE '$category' && offer_type LIKE '$offer_type' && location LIKE '$location' " . " LIMIT $redove, $broinastranica";
$result = mysql_query($query) or die('Error, query failed1');
mysql_close();
// print-ваме посочените редове в таблица.
while($row = mysql_fetch_array($result))
{
echo "
<div style=\"width:335px; height:100px;background-color: green;\" >
<div style=\"float: left; width:105px; height:100px;\">
<a href=\"index.php?offerid=$row[id]\"><img src=\"$row[pic1]\" style=\"width:100px; height:100px; border:0\" /></a>
</div>
<div class=\"showtext\" style=\"float:right;\">
<a href=\"index.php?offerid=$row[id]\" style=\"text-decoration:none; color:black;\">
<b>Оферта</b>: $row[id]</a><br />
<b>Категория</b>: $row[category] <br />
<b>Тип</b>: $row[offer_type]<br />
<b>Местонахождение</b>: $row[location] <br />
<b>Цена</b>: $row[price]лв. <br />
</div>
</div>
<hr width=\"100px\" style=\"border: 2px; color: black;\">
";
$results = 1;
}
// проверяваме таблицата колко редове има
mysql_connect($host,$dbuser,$dbpass) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());
$query = "SELECT COUNT(id) AS numrows FROM estate";
$result = mysql_query($query) or die('Error, query failed2');
mysql_close();
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$maxPage = ceil($numrows/$broinastranica);
$self = $_SERVER['PHP_SELF'];
$nomeranastranici = '';
for($page = 1; $page <= $maxPage; $page++){
if ($page == $pageNum)
{
$nomeranastranici .= " $page ";
}else{
$nomeranastranici .= " <a href=\"$self?p=4&page=$page\">$page</a> ";
}
}
// създаване на ликовете [предишна] [следваща]
// както и линковете [първа] и [последна]
if ($pageNum > 1){
$page = $pageNum - 1;
$predishna = " <a href=\"$self?p=4&page=$page\"> [<<<] </a> ";
$parva = " <a href=\"$self?p=4&page=1\">[първа]</a> ";
}else{
$predishna = ' ';
$parva = ' ';
}
if ($pageNum < $maxPage){
$page = $pageNum + 1;
$sledvashta = " <a href=\"$self?p=4&page=$page\"> [>>>] </a> ";
$posledna = " <a href=\"$self?p=4&page=$maxPage\">[последна]</a> ";
}else{
$sledvashta = ' ';
$posledna = ' ';
}
// показваме
echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna;
}else{
echo "
<div style=\"text-align: right; float: left;\">
<form action=\"index.php?p=4\" method=\"post\">
Категория на имота:
<select name=\"category\">
<option value=\"0\">Моля изберете</option>
<option value=\"1\">Къща</option>
<option value=\"2\">Апартамент</option>
<option value=\"3\">Вила</option>
<option value=\"4\">Земеделски Имот</option>
<option value=\"5\">Горски Имот</option>
<option value=\"6\">Парцел в населено място</option>
</select><br />
Тип на офертата:
<select name=\"offer_type\">
<option value=\"0\">Моля изберете</option>
<option value=\"1\">Купувам</option>
<option value=\"2\">Продавам</option>
<option value=\"3\">Под наем</option>
</select><br />
Местонахождение:
<select name=\"location\">
<option value=\"0\">Моля изберете</option>
<option value=\"1\">Монтана</option>
<option value=\"2\">Обл. Монтана</option>
<option value=\"3\">Друго </option>
</select><br /><br />
<input type=\"submit\" name=\"submit\" value=\"Търси\" />
</form>
</div>
";
}
?>