$link=mysql_connect ("localhost", "login", "pass") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db("DBname", $link) or die("Не выбрать БД");
if ($q=="is")//Если выполняется поиск со страницы http://www.vsekafe.ru/gde.php
{
$sql=' TRUNCATE TABLE `temp2` ';//Очитска временой БД. Используется для хранения перменных, полученных из формы запроса.
mysql_query($sql, $link) or die("Не удалить");
$sql = 'INSERT INTO `temp2` ( `metro1` ,`type1` , `street` , `name` , `phone` , `house` , `korp` , `beer` , `kofe` , `second` , `vine` , `icecream` , `vhod` , `page` , `kitchen` , `show1` , `show2`, `smoke`) VALUES ("'.$metro1.'", "'.$type1.'", "'.$street.'", "'.$name.'", "'.$phone.'", "'.$house.'", "'.$korp.'", "'.$beer.'", "'.$kofe.'", "'.$second.'", "'.$vine.'", "'.$icecream.'", "'.$vhod.'", "'.$page.'", "'.$kitchen.'", "'.$show1.'", "'.$dop.'", "'.$smoke.'")';
mysql_query($sql, $link) or die("Не добавить");
}
elseif ($q=="is4")//Если выполняется поиск со страницы http://www.vsekafe.ru/index.php
{
$sql=' TRUNCATE TABLE `temp2` ';
mysql_query($sql, $link) or die("Не удалить");
$sql = 'INSERT INTO `temp2` ( `type1` , `street` , `name` , `show1`) VALUES ("'.$type1.'", "'.$street.'", "'.$name.'", "'.$show1.'")';
mysql_query($sql, $link) or die("Не добавить");
}
if ($id=="small")//Если выполняется поиск со страницы http://www.vsekafe.ru/index.php
{
echo ("
Название заведения: | Тип заведения: | Адрес: | Телефон: | Станция метро: | | |
");
if ($q==2)//Если перешли на следующую страницу результатов поиска (по 12 на странице)
{
$sql2="SELECT * FROM `temp2` ";
$result2=mysql_query($sql2, $link) or die("Не выбрать");
$row2 = mysql_fetch_array($result2);
$type1=$row2['type1']; $street=$row2['street']; $name=$row2['name']; $show1=$row2['show1']; $inet=$row2['inet']; $map=$row2['map'];
}
$a=array(0=>$type1, 1=>$street, 2=>$name, 3=>$show1);
$num=12; //Число записей на странице
$pages=$_GET['pages'];
$result=mysql_query('SELECT COUNT(*) FROM `all`');
$row5=mysql_fetch_array($result);
$total=intval(($row5[0] - 1) / $num) + 1; //Общее число записей в основной БД
$pages=intval($pages);
if(empty($pages) or $pages < 0) $pages = 1;
if($pages > $total) $pages = $total;
$start = $pages * $num - $num;
global $t, $d, $r, $p, $f;
$result = mysql_query("SELECT * FROM `all` LIMIT $start, $num");
$z=array(0=>"no", 1=>"no", 2=>"Не важно", 3=>"Не важно");//Массив значений не введенных полей формы
$x=array(0=>"type1", 1=>"street", 2=>"name", 3=>"show1");//Массив названий переменных - используется для формирования строки запроса.
$s=" SELECT * FROM `all` WHERE";// Начало формирования строки
$k=0;
for ($i=0;$i<=3;$i++)
{
if ($a[$i]!=$z[$i])
{
$k=$k+1;//Счетчик сколько полей запроса введено
$d=$i;
$c[$i]=" `".$x[$i]."` ";//Массив столбцов в строке запроса из БД
$f[$i]=" '".$a[$i]."' ";//Массив записей после WHERE в строке запросе
}
}
$r=count($f);
for ($i=0;$i<=3;$i++)
{
if ($a[$i]==$z[$i])
{
$c[$i]=$x[$i];
$f[$i]=$z[$i];
}
}
if ($k==0)//Если не введено ни одного поля в форме, все поля формы "Не важно", то выводит на экран все записи из БД
{
$result = mysql_query("SELECT * FROM `all` LIMIT $start, $num");
while ($row = mysql_fetch_array($result))
{
$b=array(0=>$row['type1'] ,1=>$row['name'], 2=>$row['street'], 3=>$row['phone'], 4=>$row['house'], 5=>$row['korp'], 6=>$row['metro1'], 7=>$row['inet'] ,8=>$row['map']);
for ($i=0;$i<=6;$i++)
{
if ($b[$i] == "no") $b[$i]="- - -";
elseif ($b[$i] == "Не важно") $b[$i]="- - -";
}
require("search3.php");
$t=$t+1;
}
}
if ($k==1)//Если введен только один критерий в форме
{
$s.=" `".$x[$d]."` LIKE '".$a[$d]."' ";
$s.=" LIMIT $start, $num ";
$s = str_replace("$","\$",$s);
$result = mysql_query($s);
while ($row = mysql_fetch_array($result))
{
$b=array(0=>$row['type1'] ,1=>$row['name'], 2=>$row['street'], 3=>$row['phone'], 4=>$row['house'], 5=>$row['korp'], 6=>$row['metro1'], 7=>$row['inet'] ,8=>$row['map']);
for ($i=0;$i<=6;$i++)
{
if ($b[$i] == "no") $b[$i]="- - -";
elseif ($b[$i] == "Не важно") $b[$i]="- - -";
}
require("search3.php");
$t=$t+1;
}
}
elseif ($k>1)//Если введено более одного критерия в форме
{
for ($i=0;$i<=3;$i++)
{
if ($c[$i]!="") //Добавляем в строку запись после WHERE Вида: `name` LIKE
{
$s.=$c[$i];
$s.=" LIKE ";
$p=$p+1;
}
if ($f[$i]!="")
{
$s.=$f[$i];//Добавляем в строку запись после LIKE Вида: "значение переменной $name" AND
if ($p<$r) $s.=" AND";
}
}
$s.=" LIMIT $start, $num ";//Заканчиваем строку
$s = str_replace("$","\$",$s); //Экранируем
$result = mysql_query($s);
while ($row = mysql_fetch_array($result))
{
$b=array(0=>$row['type1'] ,1=>$row['name'], 2=>$row['street'], 3=>$row['phone'], 4=>$row['house'], 5=>$row['korp'], 6=>$row['metro1'], 7=>$row['inet'] ,8=>$row['map']);
for ($i=0;$i<=6;$i++)
{
if ($b[$i] == "no") $b[$i]="- - -";
elseif ($b[$i] == "Не важно") $b[$i]="- - -";
}
require("search3.php");//Выводим на экран
$t=$t+1;//Считаем сколько записей уже выведено на экран - нужно для грамотного разбиения результатов поиска по 12-ть на каждую страницу
}
}
echo ("
");
global $pervpage,$nextpage,$page2left,$page1left,$page2right,$page1right;
if (($t<$row5[0])&($t<$num)&($pages==1)) $total=1;//Если записей меньше 12-ти, то не выводим далее ссылку на вторую страницу
if ($pages == 1) $pervpage = '<<< ';
if ($pages != $total) $nextpage = ' >>>';
if($pages - 2 > 0) $page2left = ' '. ($pages - 2) .' | ';
if($pages - 1 > 0) $page1left = ''. ($pages - 1) .' | ';
if($pages + 2 <= $total) $page2right = ' | '. ($pages + 2) .'';
if($pages + 1 <= $total) $page1right = ' | '. ($pages + 1) .'';
if (($pages==1)&($total==1)) echo("".$pages."");
elseif (($pages==1)&($total!=1)) echo("".$pages."".$page1right.$page2right.$nextpage."");
elseif (($pages!=1)&($total!=1)) echo("".$pervpage.$page2left.$page1left.''.$pages.''.$page1right.$page2right.$nextpage."");
}
if ($id=="big")//Все комментарии в алгоритме для If ($id="small") выше по тексту скрипта
{
echo ("
Название заведения: | Тип заведения: | Адрес: | Телефон: | Станция метро: | | |
");
if ($q==1)
{
$sql2="SELECT * FROM `temp2` ";
$result2=mysql_query($sql2, $link) or die("Не выбрать");
$row2 = mysql_fetch_array($result2);
$metro1=$row2['metro1']; $type1=$row2['type1']; $street=$row2['street']; $name=$row2['name']; $phone=$row2['phone']; $house=$row2['house']; $korp=$row2['korp']; $beer=$row2['beer']; $kofe=$row2['kofe']; $second=$row2['second']; $vine=$row2['vine']; $icecream=$row2['icecream']; $vhod=$row2['vhod']; $page=$row2['page']; $kitchen=$row2['kitchen']; $show1=$row2['show1']; $dop=$row2['show2']; $smoke=$row2['smoke']; $inet=$row2['inet']; $map=$row2['map'];
}
$a=array(0=>$metro1, 1=>$type1, 2=>$street, 3=>$name, 4=>$phone, 5=>$house, 6=>$korp, 7=>$beer, 8=>$kofe, 9=>$second, 10=>$vine, 11=>$icecream, 12=>$vhod, 13=>$page,14=>$kitchen,15=>$show1,16=>$dop, 17=>$smoke);
$num=12;
$pages=$_GET['pages'];
$result=mysql_query('SELECT COUNT(*) FROM `all`');
$row5=mysql_fetch_array($result);
$total=intval(($row5[0] - 1) / $num) + 1;
$pages=intval($pages);
if(empty($pages) or $pages < 0) $pages = 1;
if($pages > $total) $pages = $total;
$start = $pages * $num - $num;
global $t, $d, $r, $p, $f;
$result = mysql_query("SELECT * FROM `all` LIMIT $start, $num");
$z=array(0=>"no", 1=>"no", 2=>"no", 3=>"Не важно", 4=>"Не важно", 5=>"Не важно", 6=>"Не важно", 7=>"Не важно", 8=>"Не важно", 9=>"Не важно", 10=>"Не важно", 11=>"Не важно", 12=>"Не важно", 13=>"Не важно",14=>"Не важно",15=>"Не важно",16=>"Не важно", 17=>"Не важно");
$x=array(0=>"metro1", 1=>"type1", 2=>"street", 3=>"name", 4=>"phone", 5=>"house", 6=>"korp", 7=>"beer", 8=>"kofe", 9=>"second", 10=>"vine", 11=>"icecream", 12=>"vhod", 13=>"page",14=>"kitchen",15=>"show1",16=>"show2", 17=>"smoke");
$s=" SELECT * FROM `all` WHERE";
$k=0;
for ($i=0;$i<=17;$i++)
{
if ($a[$i]!=$z[$i])
{
$k=$k+1;
$d=$i;
$c[$i]=" `".$x[$i]."` ";
$f[$i]=" '".$a[$i]."' ";
}
}
$r=count($f);
for ($i=0;$i<=17;$i++)
{
if ($a[$i]==$z[$i])
{
$c[$i]=$x[$i];
$f[$i]=$z[$i];
}
}
if ($k==0)
{
$result = mysql_query("SELECT * FROM `all` LIMIT $start, $num");
while ($row = mysql_fetch_array($result))
{
$b=array(0=>$row['type1'] ,1=>$row['name'], 2=>$row['street'], 3=>$row['phone'], 4=>$row['house'], 5=>$row['korp'], 6=>$row['metro1'], 7=>$row['inet'] ,8=>$row['map']);
for ($i=0;$i<=6;$i++)
{
if ($b[$i] == "no") $b[$i]="- - -";
elseif ($b[$i] == "Не важно") $b[$i]="- - -";
}
require("search3.php");
$t=$t+1;
}
}
if ($k==1)
{
$s.=" `".$x[$d]."` LIKE '".$a[$d]."' ";
$s.=" LIMIT $start, $num ";
$s = str_replace("$","\$",$s);
$result = mysql_query($s);
while ($row = mysql_fetch_array($result))
{
$b=array(0=>$row['type1'] ,1=>$row['name'], 2=>$row['street'], 3=>$row['phone'], 4=>$row['house'], 5=>$row['korp'], 6=>$row['metro1'], 7=>$row['inet'] ,8=>$row['map']);
for ($i=0;$i<=6;$i++)
{
if ($b[$i] == "no") $b[$i]="- - -";
elseif ($b[$i] == "Не важно") $b[$i]="- - -";
}
require("search3.php");
$t=$t+1;
}
}
elseif ($k>1)
{
for ($i=0;$i<=17;$i++)
{
if ($c[$i]!="")
{
$s.=$c[$i];
$s.=" LIKE ";
$p=$p+1;
}
if ($f[$i]!="")
{
$s.=$f[$i];
if ($p<$r) $s.=" AND";
}
}
$s.=" LIMIT $start, $num ";
$s = str_replace("$","\$",$s);
$result = mysql_query($s);
while ($row = mysql_fetch_array($result))
{
$b=array(0=>$row['type1'] ,1=>$row['name'], 2=>$row['street'], 3=>$row['phone'], 4=>$row['house'], 5=>$row['korp'], 6=>$row['metro1'], 7=>$row['inet'] ,8=>$row['map']);
for ($i=0;$i<=6;$i++)
{
if ($b[$i] == "no") $b[$i]="- - -";
elseif ($b[$i] == "Не важно") $b[$i]="- - -";
}
require("search3.php");
$t=$t+1;
}
}
echo ("
");
global $pervpage,$nextpage,$page2left,$page1left,$page2right,$page1right;
if (($t<$row5[0])&($t<$num)&($pages==1)) $total=1;
if ($pages == 1) $pervpage = '<<< ';
if ($pages != $total) $nextpage = ' >>>';
if($pages - 2 > 0) $page2left = ' '. ($pages - 2) .' | ';
if($pages - 1 > 0) $page1left = ''. ($pages - 1) .' | ';
if($pages + 2 <= $total) $page2right = ' | '. ($pages + 2) .'';
if($pages + 1 <= $total) $page1right = ' | '. ($pages + 1) .'';
if (($pages==1)&($total==1)) echo("".$pages."");
elseif (($pages==1)&($total!=1)) echo("".$pages."".$page1right.$page2right.$nextpage."");
elseif (($pages!=1)&($total!=1)) echo("".$pervpage.$page2left.$page1left.''.$pages.''.$page1right.$page2right.$nextpage."");
}
?>