"); 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."
"); } ?>